CentOS VPS内存使用量非常高,512内存保证

我正在开发一个用PHP编写的中等大小的Web应用程序,这个Web应用程序运行在一个512MB RAM的VPS上。 这个webapp还没有正式发布,所以没有太多的stream量在发生,只有我和其他一些人在做这个。

还有另外一个稍微小一点的webapp在这个机器上托pipe,在4-5个其他小的静态站点中。

我们正在运行Centos 5 32位和cPanel / WHM。

这是运行ps aux的结果,正如您所看到的,它不使用100%的RAM。 但是,在hypanel概述中,总是显示为使用一个500MB ram,仅用于运行apache,mysql,以及邮件服务器,ftp服务器等占用内存最小的版本。

 -bash-3.2# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 2156 664 ? Ss 12:08 0:00 init [3] root 1123 0.0 0.0 2260 548 ? S<s 12:08 0:00 /sbin/udevd -d root 1462 0.0 0.0 1812 568 ? Ss 12:08 0:00 syslogd -m 0 named 1496 0.0 0.0 3808 820 ? Ss 12:08 0:00 nsd named 1497 0.0 0.0 10672 756 ? S 12:08 0:00 nsd named 1499 0.0 0.0 3880 584 ? S 12:08 0:00 nsd root 1514 0.0 0.1 7240 1064 ? Ss 12:08 0:00 /usr/sbin/sshd root 1522 0.0 0.0 2832 832 ? Ss 12:08 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid root 1534 0.0 0.1 3712 1328 ? S 12:08 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql - mysql 1667 0.0 2.9 225680 30884 ? Sl 12:08 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql - mailnull 1766 0.0 0.1 9352 1100 ? Ss 12:08 0:00 /usr/sbin/exim -bd -q60m root 1797 0.0 0.0 2156 708 ? Ss 12:08 0:00 /usr/sbin/dovecot root 1798 0.0 0.0 2632 1012 ? S 12:08 0:00 dovecot-auth root 1816 0.0 3.0 38580 32456 ? Ss 12:08 0:01 /usr/local/bin/spamd -d --allowed-ips=127.0.0.1 --pidfi root 1839 0.0 1.6 63200 17496 ? Ss 12:08 0:00 /usr/local/apache/bin/httpd -k start -DSSL root 1846 0.0 0.1 5416 1468 ? Ss 12:08 0:00 pure-ftpd (SERVER) root 1848 0.0 0.1 6212 1244 ? S 12:08 0:00 /usr/sbin/pure-authd -s /var/run/ftpd.sock -r /usr/sbin root 1856 0.0 0.1 4492 1112 ? Ss 12:08 0:00 crond root 1864 0.0 0.0 2356 428 ? Ss 12:08 0:00 /usr/sbin/atd dovecot 1927 0.0 0.1 5196 1952 ? S 12:08 0:00 pop3-login dovecot 1928 0.0 0.1 5196 1948 ? S 12:08 0:00 pop3-login dovecot 1929 0.0 0.1 5316 2012 ? S 12:08 0:00 imap-login dovecot 1930 0.0 0.2 5416 2228 ? S 12:08 0:00 imap-login root 1939 0.0 0.1 3936 1964 ? S 12:08 0:00 cPhulkd - processor root 1963 0.0 0.8 15876 8564 ? S 12:08 0:00 cpsrvd (SSL) - waiting for connections root 1966 0.0 0.7 15172 7748 ? S 12:08 0:00 cpdavd - accepting connections on 2077 and 2078 root 1990 0.0 0.2 5008 3136 ? S 12:08 0:00 queueprocd - wait to process a task root 2017 0.0 2.9 38580 31020 ? S 12:08 0:00 spamd child root 2018 0.0 0.5 8904 5636 ? S 12:08 0:00 /usr/bin/perl /usr/local/cpanel/bin/leechprotect nobody 2021 0.0 3.2 66512 33724 ? S 12:08 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 2022 0.0 3.1 67812 33024 ? S 12:08 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 2024 0.0 1.9 64364 20680 ? S 12:08 0:00 /usr/local/apache/bin/httpd -k start -DSSL root 2027 0.0 0.4 9000 4540 ? S 12:08 0:00 tailwatchd root 2032 0.0 0.1 4176 1836 ? SN 12:08 0:00 cpanellogd - sleeping for logs nobody 3096 0.0 1.9 64572 20264 ? S 12:09 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 3097 0.0 2.8 66008 30136 ? S 12:09 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 3098 0.0 2.8 65704 29752 ? S 12:09 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 3099 0.0 3.1 67260 32816 ? S 12:09 0:00 /usr/local/apache/bin/httpd -k start -DSSL andrei 3448 0.0 0.1 3204 1632 ? S 12:50 0:00 imap nobody 3537 0.0 1.9 64308 20108 ? S 13:01 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 3614 0.0 1.9 64576 20628 ? S 13:10 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 3615 0.0 1.3 63200 14672 ? S 13:10 0:00 /usr/local/apache/bin/httpd -k start -DSSL root 3626 0.0 0.2 10232 2964 ? Rs 13:14 0:00 sshd: root@pts/0 root 3648 0.0 0.1 3844 1600 pts/0 Ss 13:14 0:00 -bash root 3826 0.0 0.0 2532 908 pts/0 R+ 13:21 0:00 ps aux 

最近,没有任何重大的configuration变化,内存使用率开始激增,超过512,导致虚拟服务器杀死阿帕奇,基本上谋杀我们的网站在这个过程中。

这是free -m的结果:

 -bash-3.2# free -m total used free shared buffers cached Mem: 1024 381 642 0 0 0 -/+ buffers/cache: 381 642 Swap: 0 0 0 

另有通知:

当使用率达到400 / 512mb的ram时,Apache似乎会被杀死。 这并没有使用之前发生。 这很奇怪。

你有什么想法,如果这是正常的,应该获得更多的资源? 我不这么认为,因为网上没有太多的数据或stream量。

编辑2:

 [Sat Apr 07 18:04:21 2012] [notice] Graceful restart requested, doing restart [Sat Apr 07 18:04:22 2012] [notice] seg fault or similar nasty error detected in the parent process (after manual restart) [Sat Apr 07 18:28:51 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/local/apache/bin/suexec) etc. 

这里是Apache崩溃之一的日志。 这是莫名其妙的。

free -m表示应该有足够的空闲RAM。 当一个进程因为内存太less而被杀害的时候,这个被称为“Oom kill”,其中“Oom”代表内存中的所有内存。

当发生这种情况时,你甚至可以告诉Linux哪个进程按什么顺序执行。

除此之外,MySQL在我们的系统上保留了大量的RAM,这是正常的。 您可以通过编辑my.cnf文件并调整MySQLconfiguration文件的各个variables来减less值。

此外,你应该花费一些努力来优化Apache,以保持内存消耗低。 如果Apache和PHP消耗大量的RAM,那么它将很大程度上取决于您的PHP应用程序。

此外,您应该创build一个SWAP文件,以帮助您的情况下,您的内存运行完整。

apache日志显示了一个正常的重启动,这可能是由于日志轮转:每天是同一时间吗?

这个重启然后运行到一个段错误或类似的问题,这可能是由于库不匹配。 PHP是独立于Apache安装的吗? 这个问题只是在cPanel升级后才开始(可能升级了一些库或其他)?

尝试停止并启动apache:这个错误总是会发生吗? 如果你禁用PHP或其他模块呢?

你应该考虑把这个问题作为一个新问题,如果它与你第一次问到的内存使用无关。