我不知道是否有人可以帮助我为什么这个内存正在使用。 我使用Centos 6.3,Nginx,PHP和MySQL运行一个低端的内存盒,512MB RAM,但是当我运行一个ps aux并且使用了大量的RAM时,Apache就出现了。
apache 1166 0.0 3.7 78620 19500 ? S Apr19 0:01 php-fpm: pool w apache 1167 0.0 3.7 79076 19844 ? S Apr19 0:01 php-fpm: pool w apache 1168 0.0 3.5 78312 18732 ? S Apr19 0:01 php-fpm: pool w apache 1169 0.0 2.6 61744 13656 ? S Apr19 0:01 php-fpm: pool w apache 1170 0.0 4.8 84744 25440 ? S Apr19 0:01 php-fpm: pool w apache 1383 0.0 3.3 77112 17660 ? S Apr19 0:01 php-fpm: pool w
第四列是RAM列的百分比,这意味着Apache正在使用我服务器RAM的21.6%。 为什么Apache在运行Nginx时使用这一切?
我检查了Appache是否正在运行:
/etc/init.d/httpd status httpd is stopped
所以Apache不运行,但它是? 我很困惑。
我是Linux的新手,已经设法build立这个VPS从头开始托pipe网站,没有一个控制面板,但我不明白为什么这个RAM正在使用。 不应该通过Nginx来运行php-fpm吗?
如果任何人都可以帮助,这将是伟大的。 谷歌并没有抛出太多。
这并不表明Apache正在运行。
它显示了php-fpm在apache用户帐户下运行。
当然,这些专栏的标题是这样说的:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
当你用标题查看你的过程时,它变得很明显:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND apache 1166 0.0 3.7 78620 19500 ? S Apr19 0:01 php-fpm: pool w
当然,如果ps aux可能产生这样一个长的显示,标题可能会滚动你的terminal。 当你使用更多的命令时,你最终将会知道哪些列是不需要参考标题的。
不幸的是,搞清楚多个密切相关的进程的实际内存使用情况并不简单。 ps输出中的RSS列显示了每个进程的驻留集大小,即进程使用的物理内存量,但是其中一些内存实际上是与其他进程共享的,因此只需将多个进程的RSS值相加没有给出正确的结果(共享内存被多次计数)。 %MEM列有相同的问题,因为它是RSS除以机器上的物理内存量。
在这种情况下,更有用的进程内存使用指标是:
不同于RSS,几个过程的USS和PSS可以被有意义地总结。 不幸的是,即使从最新版本的procps-ng中, ps也不能显示这些值。 有一个叫做smem的工具,可以显示进程的USS,PSS和RSS(计算总USS,总PSS和一个无意义的“总RSS”); 或者你可以从/proc/*/smaps抓取Pss:值,并使用自定义脚本进行求和。
请注意,您需要root权限才能读取除您自己以外的任何进程的/proc/*/smaps数据。