タグ

memoryとlinuxに関するyutamotyのブックマーク (7)

  • 不審なプロセスがないのにメモリ使用量が高い場合はslab領域の肥大化を疑うといいかも

    メモリのfreeが10%を切ったとアラートが飛んできた時の対応のメモです。 top を見てもあやしいプロセスが見つからなくて、 /proc/meminfo を見てみると slab領域の肥大が確認できました。 slabtop で dentry_cache が肥大化している事がわかったので、 echo 2 > /proc/sys/vm/drop_caches を実行しました。 というはなし。 freeコマンドで現在のメモリの使用量を確認する [root@bacchi ~]# free total used free shared buffers cached Mem: 1030516 971468 59048 1088 278348 166456 -/+ buffers/cache: 526664 503852 Swap: 2064380 654596 1409784 確かにこのサーバーはメモ

    不審なプロセスがないのにメモリ使用量が高い場合はslab領域の肥大化を疑うといいかも
  • カーネルパラメータvm.swappiness によるスワップの最適化 – アプレンティス プラクティス

    Linuxでのswap Linuxはメモリが潤沢にある場合でも、頻繁にSwap領域を使うようです。そのSwapする頻度を調節するカーネルパラメータがvm.swappiness(カーネル2.6以上から導入されたパラメータ)です。 用途 データベースサーバなどパフォーマアンスを求められるサーバで、頻繁にスワッピングが発生するのが困る場合などに有用。swapが発生するのを最小限にするために値を0〜10くらいにすると良い。 使用方法 vm.swappinessの値を確認する方法は以下です。値が小さいほうがSwapしにくくなる。つまり、小さくすればするほど物理メモリを使えるだけ使うようになる。0にすると物理メモリを使いきるまでswapしなくなる。 現在のswappinessの値を確認(デフォルト60) # cat /proc/sys/vm/swappiness 60 vm.swappinessの設定

  • Linuxエンジニア日記 ページキャッシュの効率化

    メモリチューニングの一環としてページキャッシュの効率化を纏めてみます。 ちなみにLinuxは空きメモリをがしがしファイルI/O用のキャッシュとして利用しますが、 メモリはページ単位で分割管理されており、これらのキャッシュをページキャッシュと言います。 (これらは使われっぱなしではなく頻繁に割当て、解放が行われています) ではページキャッシュのチューニングとは何をするかと言うと、 要は無駄なページキャッシュを残さないようにしてあげればよいのです。 通常のI/O処理はライトバックで処理されているので、ページキャッシュに書き込まれた時点で プロセスには書き込み完了通知が返され、キャッシュ上のデータはバックグランドでディスクに 書き込まれていきます。 ライトバックしたキャッシュ上のデータは解放可能なデータとなりますので、 頻繁にライトバックをしてあげる事でキャッシュの解放サイクルを早める事が出来ま

  • naoyaのはてなダイアリー - Linuxのページキャッシュ

    世間では PHP が、Perl が、と盛り上がっているようですが空気を読まずまたカーネルの話です。今回はページキャッシュについて。 /dev/shm に参照系DBを持っていくと I/O 負荷が激減した件(当たり前だけど) - drk7jp で、ディスク上にあったファイルを /dev/shm (tmpfs) に移したら I/O 待ちがなくなって負荷がさがった、ということなんですがおそらくこれは tmpfs に置く必要はないかなと思います。Linux (に限らず他の OS もそうですが) にはディスクの内容を一度読んだらそれはカーネルがキャッシュして、二度目以降はメモリから読む機構 = ページキャッシュがあります。tmpfs にデータを載せることができた、ということは物理メモリの容量に収まるだけのデータサイズかと思うので、放っておけば該当のファイルの内容すべてがメモリ上にキャッシュされて io

    naoyaのはてなダイアリー - Linuxのページキャッシュ
  • 共有メモリとは

    共有メモリとは複数プロセス間で共有可能なメモリ領域です。共有メモリを利用することでファイル等を介さずに複数プロセスがデータを共有して使用することができます。 UNIX系OS上のORACLEデータベースでMEMORY_TARGETパラメータを無効にしている場合SGAは共有メモリそのものになります。 ページでは32bit Linux環境で共有メモリを作成するプログラムを作成し、挙動を確認してみます。 ソース Linuxで共有メモリを使用するにはshmgetシステムコールで共有メモリを作成し、共有メモリを使用したいプロセスがshmatシステムコールにより共有メモリにアタッチすることで共有メモリにアクセスできるようになります。 また、shmdtシステムコールで共有メモリをデタッチ(切り離し)し、shmctlシステムコールで共有メモリを削除することができます。 以下のプログラムは256MBの共有メ

  • Linux のメモリー管理(メモリ―が足りない?,メモリーリークの検出-防止)(Kodama's tips page)

    サ−バ等に使っているPC のメモリが十分かどうか気になる事は多いと思う. 調べ出すと フリーメモリーの不足や SWAP にメモリーがはみだしている様子など 心配な事がいろいろでて来る. PC の動作が遅くなる原因は様々な要因が絡み合っているので, 表面に現れた症状だけでは効果的な対策が分からない事もある. 以下では, メモリ−関連にしぼって解説する. メモリの状況を調べる メモリ−は十分なはずなのに 余裕が無い? どのプロセスがメモリを消費しているのか? メモリーのリークを検出する方法? 防止する方法? メモリ−は十分なはずなのに SWAP を使ってる? じゃ, 当のメモリ−不足はどうしたら分かるの? メモリーと SWAP 領域はどのくらい確保すると良いのか メモリの状況を調べる メモリの利用状況を調べる方法は, free, top, ps, vmstat, /proc/meminfo

  • linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場

    Perl等のLLでウェブアプリケーションサーバを書いていると、普通はマルチプロセスモデル (apache なら prefork とか) で運用することになると思う。で、それらがどれだけメモリを使っているか、っていうのはチューニングにおいて重要になってきたりする (んじゃないかと思う) けど、そもそもメモリの総使用量をどうやって測定するのか。 20:20追記: PSSを使ってワンライナーで測定するのが簡単 (コメント欄参照)。kosakiさんありがとうございます。 $ sudo perl -le 'for my $p (@ARGV) { open my $fh, "< /proc/$p/smaps" or die $!; map { /^Pss:\s*(\d+)/i and $s += $1 } <$fh> } print $s' `pgrep plackup` 914325以下は初回投稿時

    linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場
  • 1