星期三, 九月 12, 2012

减少小内存低配VPS上CentOS 6.2系统内存使用

内存有多大,程序就有多长。程序日渐增长的内存需求让我等用低端VPS的吊丝情何以堪。此贴介绍限制mysql、apache等内存消耗大户的方法,虽然这么做会降低性能,不过相较于可怜的128M甚至64M的系统内存来说,可能性能瓶颈本来就不是这里吧。

需要root权限,有底纹的文字为shell命令或配置文件内容
1. 使用mysql小内存配置
进入/etc,备份原my.cnf
mv my.cnf my.cnf.old
使用小内存版的设置文件,x.xx.x为机器实际安装mysql版本
cp /usr/share/doc/mysql-server-x.xx.x/my-small.cnf /etc/my.cnf
编辑my.cnf,关闭innodb
在[mysqld]字段下增加
skip-innodb

2. 修改apache参数,编辑/etc/httpd/conf/httpd.conf
减少进程数,找到下面几个参数并修改
StartServers       1
MinSpareServers    1
MaxSpareServers    5
ServerLimit       64
MaxClients        64
MaxRequestsPerChild  4000
减小超时时间
Timeout 30
打开keepalive选项,增加连接复用
KeepAlive On
减小保持连接的超时时间,减小浪费
KeepAliveTimeout 3

3. php相关优化
安装php缓存模块,减少php重新编译的需要,运行命令安装
yum install php-pecl-apc
[可选]减少php可用最大内存,编辑/etc/php.ini
memory_limit = 64M
注意:此选项设置过小可能导致某些程序运行不正常

4. 减小本地控制台console个数为1个
对VPS来说,本地控制台应该没有用,编辑/etc/sysconfig/init
ACTIVE_CONSOLES=/dev/tty[1-1]

5. 将sshd、ftp等可以使用xinet的服务使用xinet共享开启,而不要用独立进程(请参考其它资料)

6. 关闭不必要的服务
使用chkconfig --list查看所有服务
chkconfig service_name off关闭相当服务

做过所有这些后,我的vps,256M内存,开机大概占用70M内存,长时间运行也使用swap也不会太多。

没有评论: