私たちは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スクリプトは機能しますが、このサーバーでは機能しません。それでは何が間違っているのでしょうか。
top
swap
このコマンドは次のデータを列に表示し、完全な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=48G
tmpfsが表示する内容を指定しました。私は正しいですか?
[root@db ~]# df -h -t tmpfs
Filesystem Size Used Avail Use% Mounted on
tmpfs 48G 12K 48G 1% /dev/shm