タグ

memoryに関するf99aqのブックマーク (6)

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Transactional memory - 日記を書く [・w・] はやみずさん

    研究室の勉強会のネタとして、transactional memoryというものを勉強している。わりと新しい概念らしく、書籍での情報が得られないので論文を読んだり、Wikipediaを眺めたりしつつ、わからないところを先輩に聞いたりして徐々に理解を深めているところ。とりあえず今まで勉強したことなどを吐き出してみる。 ここでは、software transactional memoryについて主に説明する。 なぜsoftware transactional memoryが必要か データベースでよく用いられているトランザクションを、マルチプロセッサ環境などでの共有資源管理に持ち込んだものがtransactional memoryである。 v.s. blocking method 共有資源管理の典型的な手法としては、mutexやセマフォ、あるいはロックをするというものであった。しかし、これらの方法

    Transactional memory - 日記を書く [・w・] はやみずさん
  • Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる

    Linux は fork で子プロセスを作成した場合、親の仮想メモリ空間の内容を子へコピーする必要があります。しかしまともに全空間をコピーしていたのでは fork のコストが高くなってしまいますし、子が親と同じようなプロセスとして動作し続ける場合は、内容の重複したページが多数できてしまい、効率がよくありません。 そこで、Linux の仮想メモリは、メモリ空間を舐めてコピーするのではなく、はじめは親子でメモリ領域を共有しておいて、書き込みがあった時点で、その書き込みのあったページだけを親子で個別に持つという仕組みでこの問題を回避します。Copy-On-Write (CoW) と呼ばれる戦略です。共有メモリページは、親子それぞれの仮想メモリ空間を同一の物理メモリにマッピングすることで実現されます。より詳しくは コピーオンライト - Wikipedia などを参照してください。 この CoW に

    Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる
  • 8Gメモリマシンへの道 - 最速配信研究会(@yamaz)

    最近一段とメモリが安くなっている. http://www.watch.impress.co.jp/akiba/hotline/20071006/p_mem.html 「今使ってるマザーボードは8G対応って書いてあるし, メモリスロットも4つあるから5万円出せば8Gメモリのサーバってぇ寸法よ」 という目論見だったけれど,いろいろ実験及び調べてみたところうまくいかなかったので,わかったところまでをご紹介.どなたか私の屍を乗り越えて先に進んでください. 得た知見としては下記の通り. メモリコントローラの最大バンク数について フツーに売ってるインテルベースのマザーボードのチップセットのメモリコントローラは最大ランク数(バンク数)という概念が存在して,チップセット的にハンドリングできるメモリ上限とは別の制限がある.メモリモジュールのランク数はおおむね片面実装(チップが基盤の片面にだけくっついてるもの

    8Gメモリマシンへの道 - 最速配信研究会(@yamaz)
  • 404 Blog Not Found:perl - In-Memory File

    2006年11月08日04:30 カテゴリLightweight Languages perl - In-Memory File Perl 5.8以降では、このような場合にin-memory fileが使えます。 【続】やはり Perl はメモリ喰いな言語。データ型の内部構造 :: Drk7jp DB上の全レコードをいったん perl 側の配列に格納して、その結果を返す。ってコードなのですが、当然ながらレコード数が多くなればメモリをうのは当たり前なのですが、以前の記事の内容を完全に忘却してました。ここには落とし穴があるのです。使い方は、簡単です。 my @array = (0x21..0x7e); my $memfile; open my $wfh, '>', \$memfile or die $!; print $wfh chr($_), "\n" for (@array); clos

    404 Blog Not Found:perl - In-Memory File
  • C(++)言語: valgrindの使い方

    ubuntu% uname -a Linux ubuntu 2.6.12-10-386 #1 Sat Mar 11 16:13:17 UTC 2006 i686 GNU/Linux ubuntu% valgrind --version valgrind-3.0.1 (0) 目次 Valgrindに含まれるツール Memcheck: メモリエラーを検出する(default) Cachegrind: キャッシュミスを検出する Massif: ヒーププロファイラを使う まとめ valgrindの使い方とエラーメッセージを整理してみた。「valgrind --leak-check=full command」というコマンドラインをよく用いる。これによりメモリ周りのバグを検出出来る。 --tool=cachegrindではプログラム実行時のキャッシュミス率を測定する事が出来る。cg_annotateを

  • 1