尝试解决常规服务器崩溃问题

尝试解决常规服务器崩溃问题

我有一个 VPS(非托管,Ubuntu 10.04.3 LTS),似乎每隔几天就会崩溃一次。我相当确定这是由 Apache2 引起的,因为重新启动服务(当我有机会时)确实解决了该问题。

在机器崩溃之前,服务器会陷入瘫痪,甚至无法再输入任何命令,但我的 SSH 连接仍然处于活动状态,并且偶尔会有一个字符通过。

我猜想这可能与内存有关,但在我迁移到此 VPS 之前,我在一台“较差”的机器上也使用了相同的配置,从未遇到任何问题。希望有人能帮助找出此问题的根源。

自由的输出:

                 total       used       free     shared    buffers     cached
    Mem:       1754060    1708164      45896          0      25372     138436
    -/+ buffers/cache:    1544356     209704
    Swap:      1959924      97616    1862308

ps -auxw | grep apache2输出:

    root       845  0.0  3.9 402300 68536 ?        Ss   07:13   0:01 /usr/sbin/apache2 -k start
    www-data  1366  0.4  6.5 445084 115336 ?       S    07:38   1:58 /usr/sbin/apache2 -k start
    www-data  1524  0.3  6.4 442536 112524 ?       S    07:44   1:53 /usr/sbin/apache2 -k start
    www-data  4219  0.4  6.4 441244 112876 ?       S    10:22   1:27 /usr/sbin/apache2 -k start
    www-data  4571  0.4  6.1 438284 108632 ?       S    10:42   1:13 /usr/sbin/apache2 -k start
    www-data  5476  0.4  6.3 441448 111252 ?       S    11:35   1:04 /usr/sbin/apache2 -k start
    www-data  5740  0.4  6.4 442128 113164 ?       S    11:53   1:03 /usr/sbin/apache2 -k start
    www-data  5741  0.4  6.3 441360 111712 ?       S    11:53   0:56 /usr/sbin/apache2 -k start
    www-data  5748  0.4  6.3 441152 111352 ?       S    11:54   1:03 /usr/sbin/apache2 -k start
    www-data  7171  0.5  6.1 438680 108500 ?       S    13:15   0:44 /usr/sbin/apache2 -k start
    www-data  7176  0.4  6.0 434788 106156 ?       S    13:15   0:39 /usr/sbin/apache2 -k start
    www-data  7180  0.4  4.8 412348 84276 ?        S    13:15   0:40 /usr/sbin/apache2 -k start
    www-data  7183  0.4  6.0 436404 105884 ?       S    13:15   0:42 /usr/sbin/apache2 -k start
    www-data  7449  0.4  6.0 436816 105672 ?       S    13:30   0:35 /usr/sbin/apache2 -k start
    www-data  7584  0.4  6.1 438848 108184 ?       S    13:38   0:29 /usr/sbin/apache2 -k start
    www-data  7586  0.4  5.4 426096 95776 ?        S    13:38   0:34 /usr/sbin/apache2 -k start
    www-data  7589  0.5  6.1 438784 108500 ?       S    13:38   0:37 /usr/sbin/apache2 -k start
    www-data  7612  0.5  6.2 438840 110072 ?       S    13:39   0:42 /usr/sbin/apache2 -k start
    www-data  7815  0.5  6.1 438524 108296 ?       S    13:52   0:34 /usr/sbin/apache2 -k start
    www-data  7818  0.4  6.5 444132 115312 ?       S    13:52   0:30 /usr/sbin/apache2 -k start
    www-data  8565  0.3  6.0 436516 106940 ?       S    14:29   0:15 /usr/sbin/apache2 -k start
    www-data  8612  0.4  5.7 430564 100064 ?       S    14:31   0:20 /usr/sbin/apache2 -k start
    www-data  8613  0.4  5.2 421100 91464 ?        S    14:31   0:19 /usr/sbin/apache2 -k start
    www-data  8615  0.4  6.2 437816 108756 ?       S    14:31   0:18 /usr/sbin/apache2 -k start
    www-data  8616  0.4  6.2 441132 110080 ?       S    14:31   0:18 /usr/sbin/apache2 -k start
    www-data  8617  0.4  6.0 434720 105772 ?       S    14:31   0:18 /usr/sbin/apache2 -k start
    www-data  8618  0.4  4.7 412620 83376 ?        S    14:31   0:20 /usr/sbin/apache2 -k start
    www-data  8632  0.4  6.3 440428 111280 ?       S    14:34   0:16 /usr/sbin/apache2 -k start
    www-data  8675  0.5  6.3 440176 110512 ?       S    14:35   0:21 /usr/sbin/apache2 -k start
    www-data  8679  0.4  6.1 436796 107532 ?       S    14:36   0:15 /usr/sbin/apache2 -k start
    www-data  8861  0.5  6.0 436936 106152 ?       S    14:50   0:16 /usr/sbin/apache2 -k start
    www-data  8862  0.5  6.2 439588 110364 ?       S    14:50   0:17 /usr/sbin/apache2 -k start
    www-data  8863  0.3  5.8 432308 102788 ?       S    14:50   0:11 /usr/sbin/apache2 -k start
    www-data  8937  0.4  6.4 440856 112348 ?       S    14:59   0:12 /usr/sbin/apache2 -k start
    www-data  9342  0.4  4.6 411788 81516 ?        S    15:33   0:01 /usr/sbin/apache2 -k start
    www-data  9408  0.5  4.8 414664 84512 ?        S    15:39   0:00 /usr/sbin/apache2 -k start

vmstat 15 5输出:

    procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
     0  0  97296  70168  25660 142736    4    6    79    69  132  177 15  1 82  2
     0  0  97292  70136  25684 142792    0    0     5    51   78  102 10  0 89  1
     0  0  97292  71964  25700 143124    0    0    21    53  113  163 15  0 82  2
     1  0  97292  69020  25728 143872    6    0    57    49   86  123 10  0 87  2
     0  0  97284  62704  25756 144668    4    0    53    78  163  191 22  2 76  1

Apache 以 prefork 模式运行,这是我的配置:

    <IfModule mpm_prefork_module>
    StartServers 5
    MinSpareServers 15
    MaxSpareServers 35
    MaxClients          150
    MaxRequestsPerChild 4000
    </IfModule>

当这台机器开始锁定时,它会很快出现故障,并且通常会迫使我对其进行电源循环,这对系统来说并不健康,所以希望这里有人有一些好主意。谢谢!

答案1

对我来说这里有几个警告标志。

1) VPS 服务器。其性能并不出众,而且 RAM 有限。

2) Apache2。可能是常规安装,并未针对 VPS 操作进行调整。

在您的 中/etc/apache2/apache2.conf,找到类似以下内容的行:Keepalive On 并将其更改为Keepalive Off

这通常可以提高 VPS 服务器上 Apache 的性能。

您可能还想检查其他事项:

  • 您是否已设置 robots.txt 文件来阻止搜索爬虫的攻击?
  • 假设您正在运行 PHP,您是否使用 APC 或类似的东西作为操作码缓存?这将大大减少 Apache 所需的内存量。

相关内容