タグ

GCに関するasa_ca3のブックマーク (18)

  • JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】

    ヌーラボでScalaを書くRubyistの谷です。ヌーラボでは、Backlogの開発を担当しており、最近ではBacklogJavaからScala / Play Frameworkに移行するプロジェクトのメンバーでした。 BacklogのPlay化プロジェクトでは、OutOfMemorryError(以下、OOM)の発生やCPU使用率とロードアベレージが上がったままという、Java Virtual Machine(以下、JVM)上で動くBacklogのパフォーマンスに関する問題に対処すべく、何度かHeap/Thread dumpを見る機会がありました。 私がPlay化プロジェクトで取り組んだパフォーマンス改善の知見や経験をもとに、記事では「JVMで起こったパフォーマンスの問題の切り分け方」についてお届けします。 はじめに 番環境でしばらく動かしていると、コード自体は正しく実行できるけ

    JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】
  • GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang #goroutine - niconegoto Blog

    3/25に行われたGoConで"How Communicating Sequential Goroutines Work"という発表をしてきました。 当初僕はCommunicating Sequential Processesについての話しをする予定だったのですが、時間内にとても発表できそうな内容ではなかったため、Concurrency全般についての話をしました。 そのため、ここではその際触れられなかったgoroutineの実装の話しやCSPの話しなどを含めてGoのruntimeについて何回かに分けてまとめていきたいと思います。今回は主にgoroutineについてです。 GoのConcurrency goroutineの説明に入る前にざっくりGoのConcurrencyについて説明します。 以下、GoConでの発表スライドにざっくりと沿いながら書いていきます。 speakerdeck.co

    GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang #goroutine - niconegoto Blog
  • Pythonで少なくメモリを使用する方法 - のんびりしているエンジニアの日記

    皆さんこんにちは お元気ですか。私は元気です。 今日はPythonにおけるメモリ少なく使う方法を紹介したいと思います。 なぜ、そんな方法を書くに至ったか。それは、こんなエラーをしょっちゅう見ているからですね。 Traceback (most recent call last): File "lasagne_wheal.py", line 48, in <module> prediction = model.predict_proba(np.array(X_test)) MemoryError 画像処理を行っている人間ならよくやりがちかもしれませんが、 要はint8で持っている情報をfloatに変換してデータが膨れ上がったことによってメモリが 不足していることから発生しています。 Convolutional Neural Networkを大きな画像で実施しようとするとよく発生するのではないで

    Pythonで少なくメモリを使用する方法 - のんびりしているエンジニアの日記
  • “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT

    “Stop the World”を防ぐコンカレントGCとは?:現場から学ぶWebアプリ開発のトラブルハック(2)(1/2 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Full GC問題の時代が再び到来! それまで順調に動いていたはずのWebアプリケーションが、ある時突然、応答を返さなくなる。そして、運用者があたふたしている間に、何事もなかったかのように再び動き出す。 Javaで構築したシステムにかかわる者ならば誰しもが体験するであろう事象、そうFull GC(ガベージ・コレクション)だ。Full GCが行われている間、すべてのアプリケーションスレッドは停止する。この事象は“Stop the

    “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT
  • スレッドダンプの森で覚えた死のロックへの違和感

    スレッドダンプの森で覚えた死のロックへの違和感:現場から学ぶWebアプリ開発のトラブルハック(11)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) スレッドダンプはトラブルハックに非常に有効 Javaを用いたシステムで発生したトラブルを解析する際、スレッドダンプは非常に有効な手掛かりを指し示してくれる。 例えば、連載第3回の「【実録ドキュメント】そのログ当に必要ですか?」ではログ出力がボトルネックとなったトラブルを、解析ツールを用いたスレッドダンプ解析により発見している。また、連載第10回の「ThreadとHashMapに潜む無限回廊は実に面白い?」では、レースコンディション(競合

    スレッドダンプの森で覚えた死のロックへの違和感
  • 第9回 [最終回]HotSpot JVMのGCを選択しよう | gihyo.jp

    HotSpot JVMを使うとき、どのようにGCを設定していますか? 検索して出てきたホームページを見て 「とりあえずこのホームページにあるように最新のGCを指定したし、同じようにオプションを設定したから大丈夫だろ」 と思ってしまう話をよく見聞きします。 図1 誤ったGCの選択 しかし、たとえばバッチのようにスループットを意識すべき処理にもかかわらず、レスポンスタイム重視のGCを選んでしまうのは適切ではありません。 最終回となる今回は、HotSpotにはどのようなGCがあり、どのようにそれらを選択すれば良いのかを紹介します。 4つのGCを使いこなす HotSpot JVMには、以下の4つのGCが実装されています。 シリアルGC パラレルGC コンカレント マーク&スイープGC(CMS) ガベージファーストGC(G1GC) 1つずつ見ていきましょう。 シリアルGC このGCの特徴は、ヒープの

    第9回 [最終回]HotSpot JVMのGCを選択しよう | gihyo.jp
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
  • 「Java のヒープサイズ」についての簡単な説明

    Java のヒープ領域及び 非ヒープ領域、メモリ管理について簡単に説明いたします。 ヒープやヒープサイズはガーベジ・コレクション:GC ( Garbage Collection ) と密接な関連があります。以下のページも合わせて参照ください。 ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法 Java のオブジェクトは、大きく分けて、New、Old 、Permanent というメモリ領域で管理されます。 新しいオブジェクトを格納するのが New 領域と呼ばれ、古いオブジェクトを格納するのが Old 領域と呼ばれます。 Permanent 領域にはクラスやメソッドなどの情報が格納されます。 ( これらは Permanent Generation, Tenured Generation, Young Generation とも

  • JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ

    ブログはJava8(特にMetaspace)に対応していない。 下記にJava8以降に対応した記事を記載する(予定)。 blog.pepese.com JavaVMのメモリ領域について JavaVMが管理するメモリ領域について 階層1 階層2 階層3 説明 Javaヒープ JavaVM上で起動するJavaプログラムのリソースを管理する領域。New領域とOld領域で構成される。 l" New領域 新規オブジェクトと閾値(-XX:MaxTenuringThreshold)未満のオブジェクトが配置される。(Young領域とも呼ばれる) l l" Eden領域 新規のオブジェクトが配置される。 l l" From領域 CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされる。(S0やS1とも呼ばれる) l lー To領域 CopyGC(Scav

    JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ
  • JVM GCログのrotate

    最近のJavaVMはGCログをrotate出来ます。長時間動かすサービスでGCのログを記録したいときに便利です。/tmp/gc.log.0-4の5世代で、約1MBでrotateさせる例-Xloggc:/tmp/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1048576

    JVM GCログのrotate
    asa_ca3
    asa_ca3 2013/10/18
    “-Xloggc:/tmp/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1048576”
  • syboos.jp

    asa_ca3
    asa_ca3 2013/10/18
    “-verbose:gc -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError”
  • ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法

    Java の GC について簡単に説明いたします。 GC はヒープやヒープサイズと密接な関連があります。以下のページも合わせて参照ください。 「Java のヒープサイズ」についての簡単な説明 Java プログラムが動作するとオブジェクトはメモリ上にロードされます。 大きなオブジェクトを使用したり、また、使用するオブジェクトの数が多ければ、その分メモリの使用領域は増加します。 そのまま、新しいオブジェクトをロードし続けると、Java が使用できるメモリ領域がメモリが一杯になります。 * 「 Java が使用できるメモリ領域 」、これをヒープ領域と言います。( ヒープ領域以外にも Permanent 領域が存在します。) メモリが一杯になると新しいオブジェクトをロードできず、プログラムを実行することができなくなります。 このような状態を回避するための仕組みが ガーベジ・コレクショ

  • GC ログに関わる JVM コマンドラインオプションまとめ - 理系学生日記

    Full GC による Stop the World でサーバが停止状態に…、そんなときに調査の助けになるのが GC のログ。Permanent 領域が溢れているのか、Java Heap が溢れているのか、Heap が溢れているのなら何のオブジェクトが溢れているのか、メモリリークが発生しているのか。それが分からないと何気に対処のしようがない。 ただ、この GC のログ、それなりの設定をしておかないと解析に耐えないし役に立たない。役に立たないログ出力はディスク容量を圧迫するゴミになる。そういう感じのログを目にして、なんとかならんもんかなー、なんとかせねばなーと検討しており、Oracle のページからそれっぽいオプションを調べてみてる。 Java HotSpot VM Options 当然ながら「Oracle のページ」と書いてあるように、Oracle の JVM が対象であって、他の JVM

    GC ログに関わる JVM コマンドラインオプションまとめ - 理系学生日記
  • BeInteractive! [dispose() をいつ呼び出すのか?問題]

    dispose() とか unload() とかってあるじゃん。そうそう、アレだよアレ。BitmapData とか Loader とかに用意されてる、破棄することを目的としたメソッドね。これをちゃんと呼ばないとメモリリークする—ってのは半分嘘で、実際には GC 対象になったうえで GC が発動すればきちんとメモリは開放されるんだけれども、GC が発動する頻度が高くないので巨大なリソースなんかを使った場合にはいつまでもメモリを占有し続けることがあって問題になる (たぶんね) —ので呼ばなきゃいけないんだけど、いつ呼べばいいの?って思ったこと無いですか? いつってそりゃ、「不要になったら」ですよ。はい、この話はおしまい。…じゃなくてですね、意外とこの問題根が深い気がするんですけど、どう思いますか?というのも、「不要」ってどう判断するんでしょう?もう少し言うと、それを「誰が責任を持って」行うんで

  • Build and implement a single sign-on solution

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Build and implement a single sign-on solution
  • Nanashi-soft : UnityのAndroid実機でメモリ不足に陥った場合の対処方法

    2012年01月27日14:29 カテゴリUnityプログラミング UnityAndroid実機でメモリ不足に陥った場合の対処方法 Android実機で実行していると,以下のようなエラーが多発する事があります 01-26 08:47:39.687: I/ActivityManager(234): Low Memory: No more background processes. これが出る直前から,バタバタと裏で実行されているアプリが死んでいきます(ぁ 01-26 08:47:33.437: W/kernel(119): [92325.791412] send sigkill to 19907 (t.togglewidgets), adj 9, size 3326 01-26 08:47:34.657: W/kernel(119): [92327.015319] send sig

  • 開発者が知って得するAndroid 2.3の新機能18選

    バッテリ管理などユーザー向けの新機能 最後に、ユーザー向けの機能もいくつか紹介します。ユーザー向けの機能といっても、開発者も気にするべきところが多くあります。 【13】ユーザーインターフェイスの改良 Android 2.3では、ユーザーインターフェイス(以下、UI)の多くの点がシステム全体に渡り洗礼され、より豊富なエフェクトを備えるようになりました。黒を基調としたテーマで、通知バー、メニューおよびUIの他の部分にコントラストをもたらしています。 ユーザーナビゲートとシステム、デバイスの機能制御のためのメニューや設定の変更が容易になりました。 ダウンロード管理機能によってユーザーは、Webブラウザや電子メール、または別のアプリからダウンロードしたファイルにアクセスできます。 【14】テキスト入力とマルチタッチ ソフトキーボードが、効率良くテキスト入力と編集できるように再デザインされました。入

    開発者が知って得するAndroid 2.3の新機能18選
    asa_ca3
    asa_ca3 2012/03/25
    concurrent
  • Private Presentation

    Private content!This content has been marked as private by the uploader.

    Private Presentation
  • 1