Ubuntu 服务器内存不足

Ubuntu 服务器内存不足

我有一个运行 Ubuntu 11.04 服务器的 VPS,大约每周我必须重新启动它,因为(我认为)它内存不足。

它有 256MB 的可用 RAM,我曾尝试配置 Apache 以在较少的 RAM 占用下运行,但无济于事。

您能建议我下一步该怎么做吗?我猜某个地方应该有一份日志,可以告诉我发生了什么事以及何时发生的,我在哪里可以找到它?


编辑:

我认为内存不足,因为我记得通过串行控制台登录时看到错误消息(当它崩溃时,我无法使用 SSH 等)。我不记得确切的消息,但它说了无法创建 apache 进程 - 杀死 PID 之类的东西(抱歉说得这么模糊!)。

top这是...的输出。

top - 09:42:40 up 16:10,  1 user,  load average: 0.01, 0.11, 0.12
Tasks:  78 total,   1 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    244284k total,   230528k used,    13756k free,     3348k buffers
Swap:   262140k total,   191868k used,    70272k free,    63008k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1079 www-data  20   0  322m  26m  276 S  0.0 11.1   0:02.78 apache2
 1072 www-data  20   0  260m  26m  192 S  0.0 10.9   0:02.49 apache2
  877 www-data  20   0  255m  25m  140 S  0.0 10.6   0:02.89 apache2
  872 www-data  20   0  249m  22m  200 S  0.0  9.6   0:02.93 apache2
  875 www-data  20   0  263m  10m  132 S  0.0  4.4   0:03.53 apache2
 1141 www-data  20   0  267m 9.8m  172 S  0.0  4.1   0:02.81 apache2
  451 mysql     20   0  241m 2296   68 S  0.0  0.9   0:21.08 mysqld
  923 www-data  20   0  263m 2188   44 S  0.0  0.9   0:03.10 apache2
 1865 root      20   0 18232 2088 1380 S  0.0  0.9   0:00.05 bash
  924 www-data  20   0  252m 2012  256 S  0.0  0.8   0:02.90 apache2
 1852 root      20   0 93524 1940  980 S  0.0  0.8   0:00.11 sshd
 1077 www-data  20   0  252m 1824  128 S  0.0  0.7   0:01.58 apache2
 1171 www-data  20   0  228m 1640  216 S  0.0  0.7   0:01.68 apache2
  833 root      20   0  207m 1432  268 S  0.0  0.6   0:02.19 apache2
 2053 root      20   0 19352 1268  948 R  0.3  0.5   0:00.02 top
 1805 postfix   20   0 39428 1160  708 S  0.0  0.5   0:00.01 pickup
    1 root      20   0 23980  808  304 S  0.0  0.3   0:00.27 init
  397 syslog    20   0 54452  600  460 S  0.0  0.2   0:00.27 rsyslogd
  390 root      20   0 49464  436  260 S  0.0  0.2   0:00.01 sshd
  934 postfix   20   0 41944  380  232 S  0.0  0.2   0:00.05 tlsmgr
  638 root      20   0 37364  372  272 S  0.0  0.2   0:00.22 master
  801 proftpd   20   0 98.5m  328  228 S  0.0  0.1   0:00.38 proftpd
  646 postfix   20   0 39592  300  236 S  0.0  0.1   0:00.06 qmgr
  437 root      20   0 18928  280  196 S  0.0  0.1   0:00.16 cron
  244 root      18  -2 21268  152  148 S  0.0  0.1   0:00.00 udevd
  421 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  422 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  426 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  428 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  431 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  864 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  866 root      20   0  6196  136  132 S  0.0  0.1   0:00.00 getty
  198 root      16  -4 21280  124  120 S  0.0  0.1   0:00.03 udevd
  246 root      18  -2 21144  116  112 S  0.0  0.0   0:00.00 udevd
  541 memcache  20   0 63008   80   80 S  0.0  0.0   0:02.08 memcached
  727 root      20   0 54764   80   76 S  0.0  0.0   0:00.00 saslauthd
  438 daemon    20   0 16728   64   64 S  0.0  0.0   0:00.00 atd
  316 root      20   0 15004    4    0 S  0.0  0.0   0:00.01 upstart-socket-
  728 root      20   0 54764    4    0 S  0.0  0.0   0:00.00 saslauthd
  729 root      20   0 54764    4    0 S  0.0  0.0   0:00.00 saslauthd
  730 root      20   0 54764    4    0 S  0.0  0.0   0:00.00 saslauthd
  731 root      20   0 54764    4    0 S  0.0  0.0   0:00.00 saslauthd
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S  0.0  0.0   0:00.76 ksoftirqd/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:01.24 kworker/0:0
    5 root      20   0     0    0    0 S  0.0  0.0   0:00.16 kworker/u:0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    7 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 cpuset
    8 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper
    9 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 netns
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 xenwatch
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 xenbus
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.07 sync_supers

目前服务器运行良好 - 只有当我无法访问 FTP 或 MySQL 时我才知道发生了什么事情。

答案1

这取决于您在 Apache 上运行的网站类型。我曾遇到过包含图片库的网站因 512 MB 内存而崩溃的情况。您应该进行测试,设置类似的设置,安装 munin 等绘图工具,然后开始访问您的网站。您可以看到您在哪里产生负载。

如果不是这样,但你看到一个一直呈指数增长的图表,那么可能存在内存泄漏。

答案2

如果内存不足,您将在 /var/log/messages 中看到 OOM killer 消息。事件发生后检查该日志。

至于是什么占用了内存,如果没有更多关于您设置的详细信息,就很难说。您可以随时运行,然后top按内存使用情况排序,以快速查看发生了什么。

相关内容