admin@80vps.com
联系我们
QQ:1668121212
CN
Cn
En
服务条款
优惠促销
会员中心
Toggle navigation
站群服务器
韩国站群
香港站群
美国站群
日本站群
国内云主机
华为云
景安多线
四川双线云主机
上海电信
香港服务器
香港Cera高防
香港PowerLine
香港Pangnet
香港BGP大带宽
沙田大带宽
香港九龙
香港大浦
亚太服务器
越南服务器
韩国优化
韩国首尔
日本CIA
日本CN2
日本精品
新加坡
欧美及高防
洛杉矶MC
凤凰城IF
洛杉矶Cera高防
洛杉矶SK高防
VPS主机
亚太VPS列表
新加坡SG
日本CTG
香港cera
韩国BGP
香港CI
欧美VPS列表
美国Cera
美国MC
帮助中心
账户管理
用户注册
登录验证
购买结算
充值汇款
新购续费
退款处理
VPS购买及使用
常用下载
VPS云服务器介绍
用户操作指南
Linux操作指南
Windows操作指南
产品介绍
常用下载
PHP源码
ASP源码
在线工具
推广
本月特价
CentOS查询进程占用的内存
浏览次数:4030 关键词 (
进程
内存
CentOS
)
1. ps aux命令 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND lizhibin 32986 0.0 13.8 916276 534748 ? Ssl 10:12 0:00 /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php lizhibin 32988 0.0 13.8 768812 534272 ? S 10:12 0:00 /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php lizhibin 32993 0.0 13.8 764704 534752 ? S 10:12 0:00 /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php lizhibin 32994 0.0 13.8 764704 534752 ? S 10:12 0:00 /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php lizhibin 32995 0.0 13.8 764704 534752 ? S 10:12 0:00 /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php lizhibin 32996 0.0 13.8 764704 534752 ? S 10:12 0:00 /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php VSZ:表示进程占用多少虚拟内存(kb) RSS:表示进程占用多少物理内存(kb) 我们来简化一下命令: ps aux | grep swoole | grep -v grep | awk -F ' ' '{print $5,$6}' 916276 534748 768812 534272 764704 534752 764704 534752 764704 534752 764704 534752 可以看到每个swoole的进程占用了月500+MB的物理内存。 2.使用pmap命令 pmap -d 32988 32988: /usr/local/php_5.4.45/bin/php -c /usr/local/php_5.4.45/etc/php-swoole.ini /www/service.gamechat.37.com/server.php Address Kbytes Mode Offset Device Mapping 0000000000400000 10272 r-x-- 0000000000000000 0fd:00000 php 0000000001007000 4 r---- 0000000000a07000 0fd:00000 php 0000000001008000 60 rw--- 0000000000a08000 0fd:00000 php 0000000001017000 140 rw--- 0000000000000000 000:00000 [ anon ] 0000000002a69000 301936 rw--- 0000000000000000 000:00000 [ anon ] 00007fcec91e4000 224380 rw--- 0000000000000000 000:00000 [ anon ] 命令输出第一行:执行程序以及参数。 Address: 内存开始地址 Kbytes: 占用内存的字节数(KB) RSS: 保留内存的字节数(KB) Dirty: 脏页的字节数(包括共享和私有的)(KB) Mode: 内存的权限:read、write、execute、shared、private (写时复制) Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈) Offset: 文件偏移 Device: 设备名 (major:minor) 我们使用awk命令,计算Kbytes列的和 pmap -dq 32988 | awk -F ' ' 'BEGIN{sum=0}{sum+=$2}END{print sum}' 结果输出:768812KB,这个结果是ps命令中的虚拟内存大小。接下来过滤掉so的共享内存。 pmap -dq 32988 | awk -F ' ' 'BEGIN{sum=0}{if($6!~/\.so/)sum+=$2}END{print sum}' 结果输出:672284KB,和ps命令得出的物理内存数据不同。对命令进行调整: pmap -dq 32988 | awk -F ' ' 'BEGIN{sum=0}{if($6~/\[/)sum+=$2}END{print sum}' 结果输出:539684KB,和ps命令得出的物理内存已经比较接近了。上面的命令,主要统计出进程[ anon ]、[ stack ]所占用的内存(堆栈)