如何找到使用linux swap或swap中的内容?
我有虚拟
Linux(Fedora 17)服务器,28GB内存和2GB交换.服务器正在运行设置为使用大部分RAM的
MySQL数据库.
运行一段时间后,服务器开始使用swap来交换未用完的页面.这很好,因为我的swappiness默认为60,这是预期的行为. 奇怪的是top / meminfo中的数字与进程中的信息不对应.即服务器报告这些数字: /proc/meminfo: SwapCached: 24588 kB SwapTotal: 2097148 kB SwapFree: 865912 kB top: Mem: 28189800k total,27583776k used,606024k free,163452k buffers Swap: 2097148k total,1231512k used,865636k free,6554356k cached 如果我使用https://serverfault.com/a/423603/98204中的脚本,它会报告合理的数字(由bash’es交换的几个MB,systemd等)和MySQL的一个大的分配(我省略了很多输出行): 892 [2442] qmgr -l -t fifo -u 896 [2412] /usr/libexec/postfix/master 904 [28382] mysql -u root 976 [27559] -bash 984 [27637] -bash 992 [27931] SCREEN 1000 [27932] /bin/bash 1192 [27558] sshd: admin@pts/0 1196 [27556] sshd: admin [priv] 1244 [1] /usr/lib/systemd/systemd 9444 [26626] /usr/bin/perl /bin/innotop 413852 [31039] /usr/libexec/mysqld --basedir=/usr --datadir=/data/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/data/mysql/err --open-files-limit=8192 --pid-file=/data/mysql/pid --socket=/data/mysql/mysql.sock --port=3306 449264 Total Swap Used 因此,如果我得到正确的脚本输出,则总交换使用量应为449264K = ca. 440MB用mysql使用ca. 90%的掉期. 问题是为什么这与top和meminfo数字有很大不同?有没有办法如何“转储”交换信息,看看它实际上是什么,而不是总结所有进程的交换使用? 在分析问题时,我提出了不同的想法,但它们似乎都是错误的: >脚本输出不是KB.即使它是512或4KB单位也不会匹配.实际上,比率(1200:440)约为3:1,这是“奇怪的”数字. 奇怪的是,交换使用缓慢增加,而脚本的总和输出大致相同.在最近3天内,交换使用量从1100MB增加到目前的1230MB,而总和从430MB增加到目前的449MB(ca.). 服务器有足够的可用(可用)RAM,所以我可以关闭交换并重新打开它.或者我可以将swappiness设置为0,这样只有在没有其他方式时才会使用交换.但我想解决这个问题,或者至少找出原因是什么. 解决方法
Fedora 18及以上版本已经在回购中沾上了瑕疵.您可以从
source下载python脚本并安装.
这是我的机器的示例输出(有点剪切和匿名): # smem -s swap -t -k -n PID User Command Swap USS PSS RSS 20917 1001 bash 0 1.1M 1.1M 1.9M 28329 0 python /bin/smem -s swap -t 0 6.3M 6.5M 7.4M 2719 1001 gnome-pty-helper 16.0K 72.0K 73.0K 516.0K 619 0 @sbin/mdadm --monitor --sca 28.0K 72.0K 73.0K 248.0K [big snip] 32079 42 gnome-shell --mode=gdm 41.9M 1.9M 2.0M 5.0M 32403 1001 /opt/google/chrome/chrome - 43.1M 118.5M 119.4M 132.3M 4844 1002 /opt/google/chrome/chrome 48.1M 38.1M 41.9M 51.9M 5411 1002 /opt/google/chrome/chrome - 54.6M 33.4M 33.5M 36.8M 5624 1002 /opt/google/chrome/chrome - 72.4M 54.9M 55.5M 65.7M 24328 1002 /opt/Adobe/Reader9/Reader/i 77.5M 1.9M 2.0M 5.2M 4921 1002 /opt/google/chrome/chrome - 147.2M 258.4M 259.4M 272.0M ------------------------------------------------------------------------------- 214 14 1.1G 1.1G 1.2G 1.7G 该源还提供了smemcap,它将存储所有相关数据,以便稍后可以在其上运行smem.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Linux环境下C和Cpp的易失性
- linux – libssl和libcrypto向后兼容?
- linux – 我应该关注SMART Hardware_ECC_Recovered值高吗?
- linux – 在CentOS 7上创建chroot SSH的正确方法
- Linux系统调用,libc,VDSO和实现解析
- LVM:“找不到具有uuid的设备”但是blkid找到了UUID
- Linux常用命令 - ls命令详解
- SuSe11 inotify+rsync 实现文件实时同步
- memory-management – 从内核模块更改用户空间内存保护标志
- Linux getopt()函数 getopt_long()函数---转