文章标签 ‘VPS’
如果你现在正在使用Wordpress,如果你的VPS主机内存不充足,下面这篇文章可以帮优化Apache,从而提升VPS的性能。
削减模块
用你熟悉的文本编辑器打开服务器上的httpd.conf文档,找到一排以LoadModule为开头的行。类似于这样:
# Example:
# LoadModule foo_module modules/mod_foo.so
# LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
找到的行可能会比上面列出的多得多。你可以通过“注释它们”的方法来关闭那些不需要的模块,也就是在不需要的模块所在行的前面添加一个“#”字符,例如:
才买的Godaddy 256内存的vps 还没有开始正式用就Cannot allocate memory!没办法还是地优化。
服务器资源
对于网站来说主要是CPU、TCP连接数这两者。 CPU表现在任务数上,在Linux下使用平均负载(loadavg)来衡量。可通过以下命令来查看
cat /proc/loadavg
该文件显示了系统当前的平均负载和进程状况。
0.20 0.18 0.12 1/80 11206
前三列分别为前1分钟、5分钟、15分钟内的平均负载。第四列为正在执行的进程数和系统的总进程数。第五列为上次执行的进程id。
对于单CPU的服务器,loadavg高于1,表明任务队列出现了等待,CPU忙不过来了。超过2以上就会明显感到性能降低了。
TCP连接数可通过以下命令查看:
netstat -ant | grep :80 | wc -l
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。
Apcche内存使用量可以使用下面命令:
ps -U apache u|awk ‘{S+=$6} END {print S}’
优化Apache(httpd)
KeepAlive 是否允许持续连接
MaxKeepAliveRequests 允许的持续连接的最大数
KeepAliveTimeout 持续连接在没有请求多少秒后切断
StartServers 最初启动时启动多少个服务器进程
MinSpareServers 空闲服务器进程的最小数
MaxSpareServers 空闲服务器进程的最大数
MaxRequestsPerChild 每个子进程处理的最大请求数
KeepAlive
前三个KeepAlive相关的指令用来设置持续连接。通常都是每个HTTP请求对应一个TCP连接,但对于一个包含许多图片的网页来说,客户端会在瞬间发出多个HTTP请求,此时多次建立TCP连接会大大降低响应速度。此时通过持续连接,可以允许用户在一个TCP连接中发出多个HTTP请求,减少TCP连接建立次数,提高响应速度。
这种情况下,应当通过access_log统计出连续HTTP请求出现的次数、间隔时间、访问量,以确定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout [...]
