Linuxのキャッシュとバッファについての教えてください

このQ&Aのポイント
  • Linuxのキャッシュとバッファについて教えてください。キャッシュサイズの確認方法やキャッシュとバッファの関係について理解したいです。
  • キャッシュとバッファの違いを教えてください。vmstatコマンドで表示されるキャッシュとバッファの増減についても知りたいです。
  • キャッシュとバッファに関しての疑問です。特にキャッシュとバッファの増減について理解したいです。
回答を見る
  • ベストアンサー

Linuxのキャッシュとバッファについて教えてください。

Linuxのキャッシュとバッファについて教えてください。 1.キャッシュ プログラムを実行した際、そのプログラムがキャッシュをどのくらい消費しているか、 調べる方法はないでしょうか? vmstatコマンドで表示されるキャッシュサイズの増加分を見ればいいのかなと思っていたのですが、いまいちキャッシュの仕組みを理解できておらず自信がありません。 2.バッファ 上述のvmstatでは、キャッシュとバッファが表示されますが、バッファとはキャッシュが増加すると減るものなのですか?あるプログラムを実行いたところ、キャッシュは増加し、バッファは減少しました。自分のイメージではどちらも増加するとおもっていたので、いちいち良く分かりません・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.4

>本当に私のプログラムがキャッシュを消費しているのか知りたかった キャッシュ(ページキャッシュ)は、  プログラム(プロセス)に割り当てられるものではありません。  従って、調査は困難です。  ものすごい手間を掛ければ理論上は可能ですが、お手軽な方法はありません。 >あるプログラムを実行いたところ、キャッシュは増加し、バッファは減少しました。 1.キャッシュ(ページキャッシュ)は、ファイルのキャッシュとして動作した。  ⇒ファイルは再利用されるかもしれないので、キャッシュ生存期間が長い。  ⇒生存期間切れの開放量がほとんどなく、総量が増加した。 2.バッファ(バッファキャッシュ)は、HDD読書のキャッシュとして動作した。  ⇒HDD読書操作が終わればすぐ不要になり、キャッシュ生存期間が短い。  ⇒生存期間切れで開放された量の方が多かったので、総量は減少した。 という挙動を示したと推測されます。 キャッシュ(ページキャッシュ)/バッファ(バッファキャッシュ)共に、 上記以外の動作も行いますが、一般的なプログラム(プロセス)では、 上記動作が消費総量に対して、支配的です。 >私のプログラムが動作している時間帯に >大量のキャッシュが消費されていたため、 >他のプログラムの処理が遅くなっている 今回の質問の本質は、  本当にruiruirui58さんのプログラムが  「他のプログラムの処理が遅くなる」問題の原因なのかどうか  調査したい。 ということでしょうか?

その他の回答 (3)

  • YkazubonY
  • ベストアンサー率30% (26/86)
回答No.3

top で見ればvssがキャッシュサイズだったような。 CPU CORE 4個に、8GBのメモリーを載せるのが、安くて良いと思いますが。

  • noyuo
  • ベストアンサー率39% (33/84)
回答No.2

あまり、1つのプロセスのキャッシュのサイズは気にしなくていいかもしれません。 ページフォルトが頻繁に起こってるなら、メモリのとり方や、データサイズが大きすぎたり プログラムの局所性が低いという可能性があります. vmstatのバッファは入出力(I/O)に使用するメモリ領域じゃないかな? ps や、pmap で、メモリ上だけでなくSWAPも含めたプログラムのリージョンサイズは確認してみましたか? 参考URLもどうぞ。

参考URL:
http://haginov.blog35.fc2.com/blog-entry-112.html
ruiruirui58
質問者

お礼

ご回答、ありがとうございます。 今回質問させていただいたのは、私のプログラムが動作している時間帯に大量のキャッシュが消費されていたため、他のプログラムの処理が遅くなっていることが分かり、本当に私のプログラムがキャッシュを消費しているのか知りたかったというものがありました。

  • nolix
  • ベストアンサー率19% (110/572)
回答No.1

top コマンドはどうですか?

ruiruirui58
質問者

お礼

ご回答、ありがとうございます。 topコマンドはッキャッシュサイズまでわかるんでしたっけ? メモリの使用率はでたと思いますが

関連するQ&A

  • vmstatコマンドについて

    Linuxのvmstatコマンドを実行した場合に出力されるbuffに相当するものは、solarisのvmstatでも出力できるのでしょうか?

  • Linuxのメモリ管理

    Linuxのfreeメモリとは、Top等のコマンドで見えるfree+buff+cacheと思っていますが、Linuxを使用しているとfree領域がどんどんなくなっていき、buff, cache領域が増加していきます。 free領域が枯渇しそうになって(表示上10Mぐらい?)いて、swapdとかが動作しているにもかかわらず、buff, cacheを開放したりしないのでしょうか? この辺のLinuxのメモリ管理方法をご存知の方、いらっしゃいましたら御教授願えませんでしょうか 掲載HP等でも良いので情報頂ければ助かります。 宜しくお願い致します。

  • キャッシュフロー計算書の項目について

    お世話になります。 今、キャッシュフロー計算書について勉強しています。 そこで「キャッシュフロー計算書の項目」についてお尋ねいたします。 例えば、「営業活動によるキャッシュフロー」で「買掛金の増加額」「売掛金の増加額」等ありますよね。 本によっては「買掛金の減少額」「売掛金の減少額」と表示しています。 これは、どういうふうに使い分ければよろしいのでしょうか? よろしくお願いいたします。

  • vmstatコマンド cpuのidle結果の自動取得に関して

    vmstatコマンド cpuのidle結果の自動取得に関して Linuxのcrontabでシェルファイルを実行し、 その中でvmstatコマンドを実行、出てきた結果のCPU(idleの値)のみを取得したいのですが、 何か方法はありますでしょうか。 # vmstat 1 3 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 42944 21640 38644 839040 0 0 11 13 254 23 0 0 100 0 0 0 42944 21640 38644 839040 0 0 0 0 254 10 0 0 100 0 0 0 42944 21640 38644 839040 0 0 0 0 253 25 0 0 100 0 上記の例でいうと、3行出ている結果それぞれ、 行末から2個目の値(100)を取得(変数に格納など)したいと考えております。 値と値間は半角スペースで区切られ、出力する値の桁数によって半角スペースの個数が異なります。 ただし、値間に必ず1つは半角スペースは入ります。 半角正規表現を使って試みたのですが、 上述の取得したい値が取れません。 取る方法を教えていただけないでしょうか。 正規表現にこだわっているわけではないので、 方法は問いません。 (一般的にはこうやる、というものがありがたいですが・・・) よろしくお願いします。

  • Oracle10g キャッシュヒット率について

    Linuxサーバー(Red Hat Enterprise Linux 5.5)にOracle10g(10.2.0.4)をインストールしたのですが、パフォーマンスの問題で、バッファ・キャッシュ・ヒット率が90%を下回っており、まずはこれを解決する必要があるとのことで、少し調べ始めたのですが、10gではsga_targetで自動管理できるということを知りました。 最終目的は、パフォーマンス最適化を目指していますが、そのために確認しておくべき内容および設定方法を教えてください(あるいは回答にマッチしたサイトがあれば)。sga_targetを攻略すれば達成できるのでしょうか? 当面の目的はバッファ・キャッシュ・ヒット率を上げることですが、どうすればよいでしょうか? Oracleド素人ですので、コマンドベースで教えていただけると助かります(^^; よろしくお願いします。

  • 【Linux運用】 iowait値のみ取得する方法

    Linux有識者の皆様 [ec2-user@ip-172-31-31-141 ~]$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 140708 40932 294144 0 0 18 13 16 40 0 1 99 1 0 vmstatでwa(iowait)列の値だけを取得したいと思います。(上記の場合1だけ取得したい。) 次のコマンドで取得できましたが、ほかに良い方法はありますでしょうか。 ■結果 ------------------------------------------------------------------------------ [ec2-user@ip-172-31-31-141 ~]$ vmstat | awk '{print $16}' | grep -v "wa" 1 ------------------------------------------------------------------------------ ご教授のほどよろしくお願い申し上げます。

  • Linux初めてです。

    Linuxをインストールするのは今回がはじめてなんですけども、先日Vine Linux2.1.5をインストールしました。 しかし、gimpとファイルマネージャーgmcを立ち上げようとしたところ、「コマンドが実行できません」という表示がされて、起動することができません。その他のアプリケーション・ユーティリティは問題無く起動できるのですが・・・。 なぜこの二つだけ起動しないのか、 ご存知の方がいましたら、教えてください。

  • CPU使用率のみを表示するコマンドってありますか

    Linux(fedora6)でCPU使用率のみを表示するコマンドってありますか。 top、vmstatでは、関係のない情報が入るので困っています。 宜しくお願いします。

  • vine linux4.2でのsongbirdのインストール

    linux超初心者です. FUJITSUのノートパソコンにvine linux4.2をインストールし, さらにsongbirdをインストールしようとしました. tarコマンドで解凍後,解凍フォルダにてsongbird*というのが あるので ./songbird とコマンドしたところ, cannot excute binary file と表示され,実行できませんでした. どうしたら実行できるのでしょうか? ちなみにsongbirdはプラットフォームが Linux x86_64のものを解凍してインストールしようとしました. よろしくお願いします.

  • PHPでファイルそのものをキャッシュは可能?

    PHPで書いた独自のブログサイトをやっています。 1ページ表示するのにincludeするファイルが数十にもなることがあり、 いちいちファイルを読み込むのは処理が重い気がしています。 2回目以降は、メモリ上にファイルをキャッシュし、そこから使用するような仕組みは何かありますでしょうか? お願いします。

    • 締切済み
    • PHP