我使用的是 Linux CentOS 5.8 VPS。但是我的网站在过去两天里非常慢。当我检查服务器的 Web 控制面板时,RAM 使用率为 99-100%。但是当我输入“top”命令时,RAM 的使用情况为零。当我输入
netstat -ntu | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -n | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0
它给出了哪些 IP 仍可连接的列表。结果如下:
1 131.253.41.xxx
1 178.154.255.xxx
1 188.57.200.xxx
1 207.46.199.xxx
2 77.92.139.xxx
2 88.225.27.xxx
4 95.0.24.xxx
5 65.55.215.xxx
6 174.137.191.xxx
6 193.254.229.xxx
6 88.251.71.xxx
10 95.65.159.xxx
13 212.57.14.xxx
55 85.145.xxx.xxx
330 176.53.xxx.xxx
也许你会认为,最后一个 IP 的 330 个请求和 55 个请求是 DDos 攻击。我封锁了 55 个请求的 IP。但最后一个 IP 是我的服务器的 IP。
那么我该如何解决这个 RAm 使用问题呢?谢谢,抱歉我的英语不好。
编辑:free-m 结果
total used free shared buffers cached
Mem: 2048 1949 98 0 0 0
-/+ buffers/cache: 1949 98
Swap: 0 0 0
ps auxw | egrep '(apache|httpd)' 结果
root 3239 0.0 0.7 23744 16360 ? S Sep13 2:48 Xvnc :1 -desktop server.example.com:1 (root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -pn
root 12245 0.1 0.5 40500 12064 ? Ss 15:00 0:04 /usr/bin/php /var/www/vhosts/example.com/httpdocs/directory/sagla/cron_page_u.php
root 13872 2.5 1.2 55552 27140 ? Ss 15:10 1:35 /usr/bin/php /var/www/vhosts/example.com/httpdocs/directory/feed/cron_page_m.php
apache 19791 0.0 0.4 116816 8844 ? S 15:53 0:00 /usr/sbin/httpd
apache 20120 0.0 0.4 116816 8844 ? S 15:54 0:00 /usr/sbin/httpd
apache 20277 0.0 0.4 116816 8832 ? S 15:57 0:00 /usr/sbin/httpd
apache 20369 0.0 0.4 116816 8820 ? S 16:00 0:00 /usr/sbin/httpd
apache 20408 0.0 0.4 116816 8844 ? S 16:01 0:00 /usr/sbin/httpd
root 22471 0.0 0.0 3108 800 pts/0 S+ 16:12 0:00 egrep (apache|httpd)
root 24264 0.3 0.6 41708 13020 ? Ss 08:50 1:27 /usr/bin/php /var/www/vhosts/example.com/httpdocs/directory/sagla/cron_page_1.php
root 25768 0.3 0.6 41452 12888 ? Ss 12:50 0:37 /usr/bin/php /var/www/vhosts/example.com/httpdocs/directory/sagla/cron_page_1.php
root 27815 0.0 0.7 116544 16252 ? Ss 12:56 0:03 /usr/sbin/httpd
apache 27817 0.0 0.2 23052 4696 ? S 12:56 0:06 /usr/sbin/httpd
答案1
由于您现在有 844Mb 的可用空间,因此不再存在 RAM 问题。
如果问题再次出现,您可以执行以下操作:记下 free -m 的输出和Apache 服务器状态重新启动 apache 之前和之后。
它将使你确信 Apache 获得了所有的内存。