linux – 在Ubuntu 8.04服务器上释放内存(RAM)

前端之家收集整理的这篇文章主要介绍了linux – 在Ubuntu 8.04服务器上释放内存(RAM)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why is Linux reporting “free” memory strangely?3个
我在Slicehost虚拟服务器上运行了一个带有一些轻量级服务器应用程序的Ubuntu 8.04 – apache22,svnserve,MysqL和proftpd.唯一严重的服务限制是RAM – 256MB是我付出的代价.

我注意到,如果我让系统运行几天/周,则可用RAM的数量会缓慢下降,并且很快就会使用分页文件.例如,在重新启动时,我可能有60%的RAM空闲,第二天它可能是55%等.

total       used       free     shared    buffers     cached
Mem:           256        114        141          0          3         50
-/+ buffers/cache:         61        194
Swap:          511          0        511

如何防止可用内存量下降?

编辑:这是我的ps -aux列出了顶级内存消费者.我遗漏了所有系统进程.我可以看到apache和MysqL最重要的内存使用情况.

USER       PID %cpu %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      1369  0.0  0.3  16844   952 ?        S<s  00:10   0:00 /sbin/udevd --daemon
    syslog    2110  0.0  0.2  12288   748 ?        Ss   00:10   0:00 /sbin/syslogd -u syslog
    root      2131  0.0  0.2   8128   588 ?        S    00:10   0:00 /bin/dd bs 1 if /proc/kmsg of /var/run/klogd/kmsg
    klog      2133  0.0  0.4   4516  1304 ?        Ss   00:10   0:00 /sbin/klogd -P /var/run/klogd/kmsg
    root      2154  0.0  0.4  50904  1152 ?        Ss   00:10   0:00 /usr/sbin/sshd
    root      2211  0.0  0.2   3932   592 ?        S    00:10   0:00 /bin/sh /usr/bin/MysqLd_safe
    MysqL     2253  0.0  8.8 161940 23252 ?        Sl   00:10   0:00 /usr/sbin/MysqLd --basedir=/usr --datadir=/var/lib/MysqL --user=MysqL --pid-file=/var/run/mys
    root      2254  0.0  0.2   3836   604 ?        S    00:10   0:00 logger -p daemon.err -t MysqLd_safe -i -t MysqLd
    proftpd   2340  0.0  0.5  63000  1504 ?        Ss   00:10   0:00 proftpd: (accepting connections)
    root      2356  0.0  0.3  18608   964 ?        Ss   00:10   0:00 /usr/sbin/cron
    root      2384  0.0  0.3  83360   892 ?        Ss   00:10   0:00 svnserve -d -r /etc/svn/svn-rep-01
    root      2387  0.0  3.5 194628  9220 ?        Ss   00:10   0:00 /usr/sbin/apache2 -k start
    root      2409  0.0  0.2   3852   576 tty1     Ss+  00:10   0:00 /sbin/getty 38400 tty1
    root      2410  0.0  0.5  15252  1444 ?        Sl   00:10   0:00 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.2/ext/apache2/ApplicationPoolServerExecutable 0 /us
    www-data  2411  0.0  3.4 195880  9100 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2412  0.0  7.3 205532 19400 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2413  0.0  3.3 195620  8824 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2414  0.0  3.4 195880  9080 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2415  0.0  3.4 195888  9056 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    root      2416  0.0  2.4  43448  6512 ?        Sl   00:10   0:00 Passenger spawn server
    www-data  2437  0.0  7.7 208116 20248 ?        S    00:48   0:00 /usr/sbin/apache2 -k start
    www-data  2519  0.0  3.3 195644  8820 ?        S    02:12   0:00 /usr/sbin/apache2 -k start
    root      3026  0.0  1.1  67960  2892 ?        Ss   20:53   0:00 sshd: dv [priv]
    dv        3028  0.0  0.6  67960  1700 ?        S    20:53   0:00 sshd: dv@pts/0
    dv        3029  0.1  0.8  19392  2304 pts/0    Ss   20:53   0:00 -bash
    dv        3041  0.0  0.4  15056  1092 pts/0    R+   20:54   0:00 ps -aux

总的来说,我要感谢大家的深思熟虑的答案,选择最好的答案真的很难,因为每个人都有一些有用的信息.

我将研究转向lighthttpd或Nginx,或者至少减少apache的MaxClients参数.

解决方法

你会注意到其中一些是由“缓存”消耗的.

这只是缓存的磁盘读/写,你基本上可以假设它是免费的,因为一旦更重要的东西需要它就会被抛弃.

它使磁盘IO更快.

猜你在找的Linux相关文章