우리는 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