私の記憶に奇妙なことが起こりました。
私はUbuntu 14.04サーバーとZimbra 8.6を持っており、カーネル(このサーバーの場合)は3.13.0-37-genericです。しかし、他のカーネルで問題を見たことがあります。
メモリとスワップ領域がいっぱいです。
$ free
total used free shared buffers cached
Mem: 6112624 5991208 121416 88 4752 79224
-/+ buffers/cache: 5907232 205392
Swap: 3905532 3624768 280764
ジンブラが私の記憶をすべて食べると思ったが、奇妙にもそうではないようだ。
# ps -A --sort -rss -o comm,pmem | head -n 11
COMMAND %MEM
java 10.6
clamd 4.7
mysqld 3.0
java 2.0
slapd 1.2
/opt/zimbra/ama 1.1
/opt/zimbra/ama 1.0
/opt/zimbra/ama 1.0
/opt/zimbra/ama 1.0
/opt/zimbra/ama 0.9
私のすべてのプロセスはメモリの半分を占めています。私のバッファとキャッシュはほとんど何もしません。
Zimbraを停止しても、まだ3.5GBが使用されます。
# ps -A --sort -rss -o comm,pmem | head -n 12
COMMAND %MEM
bash 0.0
bash 0.0
bash 0.0
sudo 0.0
rsyslogd 0.0
http 0.0
http 0.0
htop 0.0
init 0.0
ps 0.0
再起動後、200Mb未満のメモリが使用されます。
サーバーは139日間実行され、メモリ使用量は毎日少しずつ増加しました。
だから私の質問は:何がすべてのメモリを占めるのですか?
1を編集し、いくつかの情報を追加します。
$ ls -l /dev/shm
lrwxrwxrwx 1 root root 8 mai 2 12:46 /dev/shm -> /run/shm
$ ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 3051744 4 3051740 1% /dev
tmpfs 611260 496 610764 1% /run
/dev/sda2 14287344 2765996 10772548 21% /
none 4 0 4 0% /sys/fs/cgroup
none 5120 0 5120 0% /run/lock
none 3056288 0 3056288 0% /run/shm
none 102400 0 102400 0% /run/user
再起動後(Zimbra起動):
$ free
total used free shared buffers cached
Mem: 6112576 5712908 399668 832 237892 1829424
-/+ buffers/cache: 3645592 2466984
Swap: 3905532 0 3905532
RAMの一部のグラフ(12時30分頃にサーバーを再起動しました):
2番目のグラフは、次の結果を示しています。
ps aux |awk '{s+=$4} END {print s}'
第三に、結果:
smem -tw |grep -v Area | sed 's/ //;s/ //'
ベストアンサー1
隠れ家。
良いまとめがありますhttp://www.linuxatemyram.com/。
Linux は、ディスクキャッシュに使用されていないメモリを借りています。これはメモリが不足しているように見えますが、そうではありません!すべて大丈夫です!
キャッシュをクリアするには、rootとしてこのコマンドを使用して、結果のメモリ使用量を観察します。
echo 3 > /proc/sys/vm/drop_caches