- PR -

メモリバッファをクリアする方法

1
投稿者投稿内容
dchar
常連さん
会議室デビュー日: 2004/05/10
投稿数: 41
投稿日時: 2004-08-02 23:52
こんばんは。

UNIX、LINUX系OSを連続稼働しているとメモリ使用率がじりじりとあがっていきます
(監視サービスのメモリ使用率の監視webページでみています)。

こういう風にあがっていったメモリ使用率を下げるのによいコマンドってないでしょうか?
いつもこの場合、頃合いをみて再起動してしまっているのですが、
どうしても再起動できない場合の対処方法として何かあればご教授ください。

あと、システム全体のメモリの使用率を確認するコマンドってありましたっけ?
psとかだとどうも見づらくて。

よろしくお願いいたします。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-08-03 00:23
引用:

dcharさんの書き込み (2004-08-02 23:52) より:
UNIX、LINUX系OSを連続稼働しているとメモリ使用率がじりじりとあがっていきます


ごく自然な、問題ない動作です。
瞬間的(2、3秒とか)に大量のメモリを要求する動作が発生しない限り、
空きメモリはほとんど無くても構いません。
# 現代的な Unix における仮想記憶システムは、そういうふうに出来ています。

引用:

あと、システム全体のメモリの使用率を確認するコマンドってありましたっけ?


vmstat ですね。
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2004-08-03 00:34
こんばんは。

引用:

dcharさんの書き込み (2004-08-02 23:52) より:
あと、システム全体のメモリの使用率を確認するコマンドってありましたっけ?
psとかだとどうも見づらくて。



どのような形式を望んでおられるかによりますが、コマンドラインベースでしたら
top は駄目ですか?

引用:

UNIX、LINUX系OSを連続稼働しているとメモリ使用率がじりじりとあがっていきます
(監視サービスのメモリ使用率の監視webページでみています)。



確かに単調増加しますが、この数値をどこまで鵜呑みにしてよいか、という点を考えておく
必要があるかもしれません(ただし神経質にならなくてOK)。また、増加率が著しい場合は、
それがどのプロセスかを検証して、そのPGにメモリーリークの可能性がないかを調べる必要が
あるかもしれません。

引用:

こういう風にあがっていったメモリ使用率を下げるのによいコマンドってないでしょうか?
いつもこの場合、頃合いをみて再起動してしまっているのですが、
どうしても再起動できない場合の対処方法として何かあればご教授ください。



すいません、これはわかりません。

[ メッセージ編集済み 編集者: Ken-Lab 編集日時 2004-08-03 00:48 ]
dchar
常連さん
会議室デビュー日: 2004/05/10
投稿数: 41
投稿日時: 2004-08-03 00:48
ぽんすさん,
ken-labさんレスどうもです。

引用
-------------------------------------------------------------------------

  ごく自然な、問題ない動作です。
  瞬間的(2、3秒とか)に大量のメモリを要求する動作が発生しない限り、
  空きメモリはほとんど無くても構いません。
  # 現代的な Unix における仮想記憶システムは、そういうふうに出来ています。
    ---------------------------------------------------------
なるほどー。
ただ、データセンタのサービスで監視をしているのである一定の閾値を超えると通報
が出てしまいます。
それを避けたいのですが、やはり再起動しかないでしょうか?
あと、メモリが少なくなってくるとマシンが不安定になったり重くなったりしないも
のですか?

PGのメモリリークまでは現在みれていません。
その辺もきっと確認していく必要があるのでしょうね。勉強になります。
プロセスが増えていたりしてもアプリの使用を完全に把握していないため落としてよいものやら、という状態です。
それとは別にプロセスとしてたっているもの以外でゴミのようなものがたまって使用率があがっていくことってないでしょうか?

vmstatやtop、早速利用してみます。。


ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-08-03 13:08
メモリリークの可能性は、頭から抜け落ちていました。
そうですね、リークしていればどんどん増えるはずですし。
リークしてるプログラムをそのまま使う必要があるのであれば、
そのプロセスを定期的に再起動する、とかでしょうねえ。

引用:

dcharさんの書き込み (2004-08-03 00:48) より:
ただ、データセンタのサービスで監視をしているのである一定の閾値を超えると通報
が出てしまいます。
それを避けたいのですが、やはり再起動しかないでしょうか?


むしろ、監視のほうを変えるべきと思います。
たとえば Solaris だと三つくらいのパラメータで「空きメモリを
どれだけ確保するか」という設定をするようになっていたと思いますが、
その設定値のところまでは OS がメモリを使いますので。
監視をそちらに合わせるべきでしょう。

Linux(カーネル2.4以降)だと厄介なのですが...
空きメモリの大きさを設定できないので。
# いまの Linux の仮想記憶だと、キャッシュに使っている領域から
# 直接、他に転用できるようになっているので空きメモリは要らない、
# ということなのだと思いますが。
これはもう、「Linux を信じるかどうか」という問題ですかねえ。
# 信じるとバカをみることもあるような気がしますが

引用:

あと、メモリが少なくなってくるとマシンが不安定になったり重くなったりしないも
のですか?


それはない「はず」です。

引用:

それとは別にプロセスとしてたっているもの以外でゴミのようなものがたまって使用率があがっていくことってないでしょうか?


それもない「はず」です。
# OSそのものがバグっていない限り。
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2004-08-03 14:34
> # OSそのものがバグっていない限り。

プログラムがバグっている場合にもありえますよ。共有メモリを使っているプログラムとか。

> vmstatやtop、早速利用してみます。。

linuxはfreeの方が見やすいです。「-/+ buffer/cache: 」で表示されるfreeの値が実質のfreeの値です。
HP-UXだと/usr/sbin/swapinfo、solarisだと/usr/sbin/swap -s、sar -rとかもありますね。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-08-03 20:44
引用:

t-wataさんの書き込み (2004-08-03 14:34) より:
プログラムがバグっている場合にもありえますよ。共有メモリを使っているプログラムとか。


「System V 系 IPC は、存在自体がバグだ」ということで手を打ちませんか?
ダメ?
じゃあ、「いずれ天井にぶつかるからいいんじゃない?」ということで。
# 天井にぶつかってしまったら、まずいことが起こってそうですが

## あ、いえ、もちろん System V IPC のことを忘れていたわけなんですが。
1

スキルアップ/キャリアアップ(JOB@IT)