redhat linux 6.2 のサーバーで、特にアクセスはない状態として、
メモリーの状態を調べると、(free -m)
total used free shared buffers cached
Mem: 250 247 3 24 194 35
-/+ buffers/cache: 17 233
Swap: 517 0 517
と表示されます。
メモリーの使われている量が多すぎるような気がするのですが、これは、正常な値でしょうか。
(とくに、バッファーという所が、192Mも使われています。これは、正常な値でしょうか。そもそも、バッファーというのは、何を表しているのでしょうか。)
No.6ベストアンサー
- 回答日時:
1,「バッファー」とは大雑把に言って、何ですか。
masa-ka> バッファキャッシュはディスクからデータを読むときに先読みをして
あるいは、一度読んだらメモリが空いてる限り覚えておきます。
たとえば、Ktermを 2つ続けて起動するのに、2回 ディスクから読むのは無駄ですから
2回目はさっき読んだ物を使います。=>ハードディスクをアクセスしなくて済むので早くなる。
2, FreeBSDだと、90Mぐらい使って
とありますが、どこを見て90M使っていると分かるのですか。
(freeコマンドの)used - buffers = 90M ということですか。
FreeBSDだと、topコマンドが FreeBSDに取り込まれているので 普通のtopより多くの情報が表示されます。
ですから私は、topコマンドで見ています。
Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M
と出たら、 9220Kアクティブ=使ってるんだなと。で、Cacheは、2M使ってる。
(職場のなので、FreeBSDのman pageがらの引用です)
Solarisだと、(ソースをとってきてコンパイルしたので、普通のUNIX系マシンではこの表示が多いのではないかと思います。
Memory: 128M real, 2984K free, 111M swap in use, 466M swap free
と、表示されて 128Mあり、2984K空き、111Mswapを使ってて、466Mのswapが空いていると。
http://www.linux.or.jp/JM/html/procps/man1/top.1 …
を見たところ、やはり無さそうですね。
ちょっと思いつかないです。
3,あと、結局のところ、「メモリーが足りなくなってきた」と判断するには、何を見て判断すれば良いのですか。
swapが多いだけでなく、swap in/swap out が無ければ、メモリは足りていると考えて良いでしょう。
(swap したら、その時点で負けと言う人もいますが、OSの構造としてswapするように作られてますのである程度はswapします)
swap in/swap outは、vmstat と言うコマンドが使えるのでは無いかと思います。
# SCO UNIX,SunOS,Solaris,HP-UX,Digital UNIX(Compaqに吸収され名前が変わりましたね),SONY-NEWS 辺りでは使えるようです。
vmstat 5 とか、やってみて page out(swap out)、page in(swap in)、page fault 等の値を見ることができると思います。
これらの値が多いと、一度にメモリ上に必要なプログラム等がロード出来ていない == メモリが足りない と言えるでしょう。
どの程度で足りないかは、その人の感覚次第(^^;;;
# それ以外にも、多くの情報が出力されるので シロートの私には難解(^^;;;
No.7
- 回答日時:
なんだか、長いですけどご勘弁
vmstatですが、オライリーの「UNIXシステム管理」を見てみると Linux は自分で入れろって書いてますね。
ま、最近のディストリビューションなら入っているでしょう。
http://www.linux.or.jp/JM/html/procps/man8/vmsta …
入ってるみたいですが...Linuxじゃ page inや、page out は、表示されないのかなぁ?
sar コマンドを使うかもしれないですね。こちらは使ったこと無いのでパス。
「sar -p 5 10」 とかかな?
「vmstat 3」とかの結果を頭5行ぐらい見せてくれると分かるかもしれません。
何もしていないのに、HDDがカリカリいってなかなか止まらなかったら って判断方法も無くはない(^^;;;
でも、cron さんが、何かしてるって可能性もあるので、その辺を見極める必要があるかも。
と、今頃 free のマニュアルを見てみると...
http://www.linux.or.jp/JM/html/procps/man1/free. …
-o は "バッファの分を増減した行" の表示を無効にする。 このオプションを指定しない限り free は (それぞれ) 使用中のメモリから バッファメモリ を
引き、 未使用のメモリへバッファメモリを足したものを報告する。
という辺りが、masa-kaさんの言う
> -/+ buffer/cache の行がバッファキャッシュの量を増減したものなので
> 実際にはメモリは17MB使用していて233MB空きがあります。
この事でしょう。しかし、この補足がないと全く分からないです。
# しかし、日本語でも man ってコマンド試しながらでないと全くワカラン。あ、JM,JF,man-jp,doc-jp,...Doc-ja の方々すみません。
# tcshなんてばかでかいマニュアルを1ヶ月で翻訳するなんて、頭が下がります。
vmstat, iostat なんて言うコマンドは一行だけ表示させても正しい値は表示しませんので 2~5 秒ごとに表示するようにして
4行目辺りからの値を信じるようにした方がいいです。
でないと、コマンドが起動するときの値が出ますので、実際より負荷が高く表示されることが多いです。
No.5
- 回答日時:
>1、「バッファー」とは大雑把に言って、何ですか。
おおざっぱに言うとデータの一時保存領域です。
バッファキャッシュはディスクからデータを読むときに先読みをして
データを保存したり、一度読んだデータをしばらく保存しています。
そうするとディスクへのI/Oが減るので性能が上がります。
余っているメモリがあるとバッファキャッシュに回されるので、空き
メモリが少なく見えますが、問題ありません。
メモリが本当に必要になるとバッファキャッシュの量を減らして、必要
なプロセスにメモリを回します。
-/+ buffer/cache の行がバッファキャッシュの量を増減したものなので
実際にはメモリは17MB使用していて233MB空きがあります。
>3、あと、結局のところ、「メモリーが足りなくなってきた」と判断するには、何を見て判断すれば良いのですか。
-/+ buffer/cacheの行のfreeが少なかったり、Swapのusedが多かったりした場合
メモリが足りないと思っていいのではないでしょうか。
No.4
- 回答日時:
> 一般にDaemonと呼ばれるプロセスは普段殆ど動くことがない為に swap に追い出されます。
と書きましたが、Daemon だから swap に追い出されるのではなく、動かないからメモリから追い出されるのです。
ちなみに、今Windows98を使っていますが、メモリ512M積んでいて、アロケート済みメモリが、700Mほど、「現在使用されていない物理メモリのサイズ」が2M。
FreeBSDだと、 90Mぐらい使っててあとは、殆どBufferに回ってます。メモリが勿体無い(笑)
Apache,squid,postgresql...よく分からんのにメモリ食われてます。
この回答への補足
なんとなく核心部分が分かってきました。
まだ、よく分からないのが、
1、「バッファー」とは大雑把に言って、何ですか。
2、>FreeBSDだと、 90Mぐらい使って
とありますが、どこを見て90M使っていると分かるのですか。
(freeコマンドの)used ― buffers = 90M ということですか。
3、あと、結局のところ、「メモリーが足りなくなってきた」と判断するには、何を見て判断すれば良いのですか。
No.3
- 回答日時:
UNIX系(一般のコンピュータの多くも) 使われていないメモリは、どんどん Disk アクセスのバッファに使います。
何故なら、そこが一番ボトルネックになり易いからです。
ということで、Buffer や、 cash の値が多いのはDiskアクセス時にCPUが遊ぶのを防ぐためだと思います。
また、cron,syslog,lpd...等、一般にDaemonと呼ばれるプロセスは普段殆ど動くことがない為に swap に追い出されます。
実メモリが空いているとアプリケーションを起動した時に
swap を起こす必要がなく早く起動できるためです。
(このとき、Bufferの部分を使っても Bufferですから 実体は他のところにあって swap する必要がなく上書きできますね。ま、Write cacheだと、もちろんHDDへ書き出す必要がありますが)
No.2
- 回答日時:
外部からのアクションでなければ基本的に動かしているどこかでスタックオーバー
などが起きておかしくなっていることも考えられますね。
うーん、私はここまで(苦笑)
経過を見守ります。
No.1
- 回答日時:
いろんな場合が考えられますが常にJAVAを動かしてDBをリフレッシュするような
処理をしているなどはありませんか?
メモリの状態だけでなくタスクがどれくらい走っているか調べないとなんとも。
この回答への補足
cpuの値は、0.1%程度です。
実は、直前に、ソフトウェアのコンパイルが失敗して、サーバーがダウンしています。
そのときは、電源を再び入れ直してもらって、修復しました。
こんな感じの記事がありました。関係するのでしょうか。
http://www.ibm.co.jp/developerworks/security/ove …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postaliasとpostmapコマンドに...
-
SONYの音楽ソフト「x-アプリ」...
-
Dirコマンドでフォルダ内ファイ...
-
ファイル名についている「-」と...
-
batである文字列内に特定の文字...
-
ディスク上のサイズを確認する方法
-
tar.bz2ファイルのインストール...
-
ピクチャクリッピングのファイ...
-
エクセルの表にヘンな枠が・・・
-
dig/host/nslookup コマンド...
-
emacsでCtrl+zを押してサスペン...
-
TOPコマンドで表示するCPU使用...
-
python IDLEで訂正、削除のやり...
-
"パイプが切断されました"の表...
-
ラズパイで『’test.service’をs...
-
タスクバーの音量アイコンをク...
-
-bash: ftp: コマンドが見つか...
-
マウントしたUSBメモリに書き込...
-
aquos HDD交換品について
-
linux初心者です wineをつかっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
topコマンドで表示されるVIRT、...
-
FreeBSDでのCPU占有率とメモリ...
-
CPU 使用率について(ps,top,sar)
-
postaliasとpostmapコマンドに...
-
AIXでシステム内の全プロセスメ...
-
Linuxが突然フリーズしました
-
freeコマンドのfree,swapについて
-
Swap領域が使用されてない
-
freeとpsでメモリ使用量が違う?
-
cpuやメモリのスペックを調べる...
-
ps aux ps auxw psauxwwの違い
-
DNS(BIND)を起動できない
-
umountはなぜunmountではなくum...
-
【メモリ]】vmstat、free、top...
-
実行中のプロセス数をカウント...
-
デジカメ動画を取り込もうとす...
-
Ubuntuの削除(MBR)の修復ができ...
-
コマンドプロンプトからC:のデ...
-
centosサーバーが重い時のTOPコ...
-
telnetでrootでログイン後にサ...
おすすめ情報