Linux服务器上的进程和内存问题

需要一些帮助来分析在Linux服务器上运行的Apache和PHP进程。 它是一款带有4GB内存的8核英特尔处理器。 当它的网站运行这样的顶部显示。

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23459 username1 16 0 151m 27m 8388 S 11.3 0.7 0:11.71 php5 23730 username1 16 0 151m 28m 8388 S 11.3 0.7 0:03.87 php5 23458 username1 16 0 151m 28m 8388 S 3.0 0.7 0:19.20 php5 16202 mysql 15 0 459m 38m 4624 S 0.7 1.0 62:33.81 mysqld 24141 nobody 15 0 311m 5832 2304 S 0.3 0.1 0:00.03 httpd 

为什么命令说php5访问网站时。 Apache和PHP都被预先configuration,所以不知道在那里做了什么。 试图设置相同的网站和数据库在不同的服务器,但在这个过程中显示httpd总是,而不是php5。 该网站使用MySQL数据库。

问题是服务器负载似乎去约5.x当网站是由约16用户访问。 当free -m命令给出时,输出显示

  total used free shared buffers cached Mem: 3941 3727 213 0 236 2734 -/+ buffers/cache: 756 3184 Swap: 4095 0 4095 

大量的内存似乎在caching和可用内存less。 即使网站没有被访问,这使得闲置2天左右的空闲内存显示只有190.当访问网站的空闲内存似乎是去90MB,然后增加到约150MB。 它似乎总是只有200mb左右。 它是否与服务器负载显示5.x有关。 将增加更多的RAM解决负载问题?

为什么命令说php5访问网站时。 Apache和PHP都被预先configuration,所以不知道在那里做了什么。 试图设置相同的网站和数据库在不同的服务器,但在这个过程中显示httpd总是,而不是php5

因为在第一台服务器上,PHP以CGI或者CGI的forms运行,而在第二台服务器上以PHP模式运行。

你的httpd进程的虚拟大小看起来很丰富 – 你有多less台服务器正在运行?

问题是服务器负载似乎去约5.x当网站是由约16用户访问。

在不了解代码和使用模式的情况下,很难进行一般化,但是鉴于机器和用户数量的规格,我不希望看到对负载有任何显着的影响。 (我曾担心1GHz / 512Mb LAMP箱的负载,每个处理大约120个并发请求的时间大于0.8)。

我怀疑这个怪物机器的configuration是非常错误的。 当然,如果它运行一个CGI接口,那么你应该立即解决这个问题。

我很困惑,为什么它的行为如此糟糕 – 你没有任何机会设置CPU亲和力的httpd进程? (man任务集)

对于第一个问题,当通过mod_php访问PHP脚本时,它们将显示为httpd因为它们在Web服务器中运行。 当他们通过CGI或FCGI访问时,他们显示为php5因为在这些情况下运行一个单独的进程。

至于第二个问题,在这个网站上有很多很多的重复, 我邀请你去寻找他们。 我会把它留在“你没有记忆问题”。