プロセス別スワップ使用量

プロセス別スワップ使用量

私たちは64G物理メモリと4Gスワップを備えたCentOS 5.11(64ビット)を持っています。スワップが使用されていることがわかりますが、900MB誰がそれを使用しているのかを調べようとしています。以下を試しましたが、zero使用法が表示されます。

      smem -t -p
      ...
      ...
     4758 root     /usr/bin/python2.6 /usr/bin    0.00%    0.03%    0.03%    0.03%
    21846 root     /usr/bin/ruby /usr/bin/pupp    0.00%    0.06%    0.06%    0.06%
    -------------------------------------------------------------------------------
      920 12                                      0.00%    7.30%   10.04%  161.37%

コマンドを試しましたが、top間違ったデータが表示され、役に立ちません。

私も次のスクリプトを試しましたが、また示していますzero

#!/bin/bash
for i in `ls /proc`
do
        if [ -f /proc/$i/smaps ]
                then
                grep -H Swap /proc/$i/smaps | awk '( $2 != "0" ) { print }'
        fi
done

誰がそれを使用しているのかを知るためのツールがないので、SWAPここで何が問題なのかわかりません。ただし、他の条件が同じ場合、上記のbashスクリプトは機能しますが、このサーバーでは機能しません。それでは何が間違っているのでしょうか。

topswapこのコマンドは次のデータを列に表示し、完全な4G交換があるため、これは完全に間違っています。

top - 09:38:55 up 111 days, 14:23,  1 user,  load average: 2.09, 2.34, 2.20
Tasks: 994 total,   4 running, 990 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.3%us,  0.9%sy,  0.0%ni, 86.0%id,  0.0%wa,  0.0%hi,  0.7%si,  0.0%st
Mem:  98820240k total, 75660440k used, 23159800k free,  1056112k buffers
Swap:  4192924k total,  4192496k used,      428k free, 59936024k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
 6292 postgres  15   0 50.0g 109m 100m S  1.5  0.1   0:02.95  49g postmaster
 6797 postgres  15   0 50.0g  10m 8228 S  1.5  0.0  33:35.32  49g postmaster
10300 postgres  15   0 50.0g  60m  53m S  1.5  0.1   0:01.18  49g postmaster
12280 root      15   0 13428 1836  844 R  1.5  0.0   0:00.25  11m top
   26 root      10  -5     0    0    0 S  0.7  0.0 215:11.17    0 events/0
 1969 postgres  15   0 50.0g 141m 132m S  0.7  0.1   0:04.42  49g postmaster
 2549 postgres  15   0 50.0g 141m 132m S  0.7  0.1   0:04.24  49g postmaster
 2550 postgres  15   0 50.0g 141m 132m S  0.7  0.1   0:04.37  49g postmaster
 2699 postgres  15   0 50.0g 141m 132m S  0.7  0.1   0:04.45  49g postmaster
 3128 postgres  15   0 50.0g 131m 123m S  0.7  0.1   0:03.91  49g postmaster
 4556 postgres  15   0 50.0g 115m 107m S  0.7  0.1   0:03.20  49g postmaster
 4560 postgres  15   0 50.0g 116m 108m S  0.7  0.1   0:03.23  49g postmaster
 4669 postgres  15   0 50.0g 113m 105m S  0.7  0.1   0:03.28  49g postmaster
 4671 postgres  15   0 50.0g 114m 106m S  0.7  0.1   0:03.27  49g postmaster

これは私のtmpfs出力です。今問題は48Gそれがどこから来たかです。 postgresql.confでshared_buffer=48Gtmpfsが表示する内容を指定しました。私は正しいですか?

[root@db ~]# df -h -t tmpfs
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  48G   12K   48G   1% /dev/shm

ベストアンサー1

おすすめ記事