我的服务器@codemeh.com(HTTP 服务器)似乎随机加载缓慢,我不知道这是否只是我的论坛(http://www.codemeh.com/forums/) 加载缓慢,或者整个网站加载缓慢,因为我的论坛现在是网站上最大的内容。
load average: 0.02, 0.17, 0.20
就我所知,这太低级了。我尝试使用 FireFox 的 Google Page Analytic 插件来解决这个问题,但什么也没发生,这很糟糕。如果有人能帮我调查一下这个问题,因为我对 Apache 和服务器配置还很陌生。谢谢!
(顶部):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7493 www-data 15 0 98.2m 16m 9092 S 3 0.8 0:27.24 apache2
26429 www-data 15 0 98.2m 15m 7392 S 3 0.7 0:03.45 apache2
26477 www-data 17 0 98.2m 15m 7396 S 3 0.7 0:03.16 apache2
1 root 15 0 2468 1384 1156 S 0 0.1 0:00.49 init 1367 root 25 0 2564 816 660 S 0 0.0 0:00.00 xinetd
1526 root 15 0 29576 5420 1976 S 0 0.3 1:02.69 fail2ban-server 3703 root 15 0 13512 9312 1696 S 0 0.4 0:11.59 miniserv.pl
3915 postfix 15 0 6056 1652 1320 S 0 0.1 0:00.00 pickup 4010 root 15 0 4548 1296 972 S 0 0.1 0:37.36 ntpd
7448 root 15 0 98528 26m 20m S 0 1.3 0:00.27 apache2 7454 www-data 18 0 33580 2616 368 S 0 0.1 0:00.04 apache2
7528 www-data 18 0 108m 24m 15m S 0 1.2 0:27.60 apache2 7974 root 16 0 8700 2728 2164 S 0 0.1 0:00.08 sshd
8123 cdog5000 15 0 8832 1596 896 S 0 0.1 0:00.00 sshd 8126 cdog5000 18 0 4484 1716 1384 S 0 0.1 0:00.00 bash
8141 cdog5000 15 0 2344 980 796 R 0 0.0 0:00.11 top 13461 root 15 0 8700 2728 2164 S 0 0.1 0:00.07 sshd
13567 cdog5000 18 0 8832 1492 896 S 0 0.1 0:00.33 sshd 13569 cdog5000 18 0 4484 1728 1388 S 0 0.1 0:00.09 bash
17983 root 15 0 4392 1268 988 S 0 0.1 0:00.00 su 17987 root 15 0 4516 1752 1380 S 0 0.1 0:00.09 bash
18081 www-data 15 0 98.2m 14m 6588 S 0 0.7 0:04.91 apache2 20000 www-data 15 0 98.3m 15m 8040 S 0 0.8 0:02.45 apache2
20019 www-data 15 0 98.2m 14m 6808 S 0 0.7 0:04.97 apache2 30343 root 15 0 3964 1012 764 S 0 0.0 0:00.03 vsftpd
30382 root 15 0 2304 908 716 S 0 0.0 0:00.62 cron 30401 mysql 17 0 141m 17m 5416 S 0 0.9 1:02.20 mysqld
30424 root 15 0 5472 912 504 S 0 0.0 0:00.04 sshd 30473 syslog 15 0 1916 676 536 S 0 0.0 0:01.02 syslogd
30611 amavis 15 0 33872 25m 2292 S 0 1.2 0:03.11 amavisd-new 31890 amavis 18 0 34888 24m 1792 S 0 1.2 0:00.00 amavisd-new
31891 amavis 18 0 34888 24m 1784 S 0 1.2 0:00.00 amavisd-new 32397 clamav 18 0 104m 84m 1272 S 0 4.1 1:06.46 clamd
32563 clamav 15 0 12832 5716 4440 S 0 0.3 0:01.29 freshclam 32573 root 23 0 1892 456 372 S 0 0.0 0:00.00 courierlogger
32575 root 18 0 2096 684 544 S 0 0.0 0:00.01 authdaemond 32583 root 23 0 1892 360 284 S 0 0.0 0:00.00 courierlogger
32584 root 24 0 2000 612 516 S 0 0.0 0:00.00 couriertcpd 32598 root 23 0 1892 360 284 S 0 0.0 0:00.00 courierlogger
32599 root 25 0 2000 612 516 S 0 0.0 0:00.00 couriertcpd 32604 root 18 0 1892 460 372 S 0 0.0 0:00.00 courierlogger
32605 root 18 0 2000 624 532 S 0 0.0 0:00.00 couriertcpd 32607 root 18 0 2308 404 256 S 0 0.0 0:00.02 authdaemond
32608 root 18 0 2096 260 116 S 0 0.0 0:00.03 authdaemond 32609 root 15 0 2308 404 256 S 0 0.0 0:00.03 authdaemond
32610 root 18 0 2096 260 116 S 0 0.0 0:00.02 authdaemond 32612 root 18 0 2308 404 256 S 0 0.0 0:00.02 authdaemond
32621 root 24 0 1892 364 284 S 0 0.0 0:00.00 courierlogger 32622 root 25 0 2000 608 516 S 0 0.0 0:00.00 couriertcpd
32633 root 15 0 105m 936 716 S 0 0.0 0:02.26 nscd 32719 root 16 0 6252 1680 1344 S 0 0.1 0:01.24 master
32738 postfix 15 0 6188 1776 1400 S 0 0.1 0:00.44 qmgr 32758 postfix 15 0 6492 2564 1788 S 0 0.1 0:00.14 tlsmgr
(/etc/apache2/sites-available/default):
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/
<Directory /var/www/web1/web/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
我有 fail2ban 服务器,目前我没有任何防火墙。SMF 是 2.0 RC4,apache 版本是 2.2.14。我在同一个 DC 中的另一台机器上运行 MySQL 服务器(持久连接)。我今天安装了 eAccelerator,但没用。
答案1
有几件事。
1) 是的,一旦页面生成并发送到浏览器,其他链接将在一定程度上并行下载。如果我没记错的话,大多数浏览器一次只会向同一个域发出 2 个请求。这意味着如果您有来自同一域的 40 个图像、css、js 等,它们将一次下载 2 个,直到全部下载完毕。也许可以考虑将静态内容移动到子域。
2) 我注意到您的图片中至少有一张图片是 126KB(body_bg)。对于一个网站来说,这是一个巨大的数字。尝试更好地优化文件大小
3) 我在请求中注意到了这一点:“Keep-Alive timeout=15, max=98”。如果您有访问权限,请尝试减少 keep-alive。从http://www.howtoforge.com/configuring_apache_for_maximum_performance, “将其设置为较低的值,大概在两到五秒之间。如果设置得太高,子进程就会被占用以等待客户端,而它们本来可以用来服务新客户端。”
希望这可以帮助
答案2
您的网站在加载时间方面似乎还不错(通常为 3-4 秒,由于外部文件,有时需要 6-7 秒),但这里有一些建议:
- 确保您正在运行 PHP 操作码缓存(例如:APC、eAccelerator)。这可以显著减少脚本执行时间。
- 考虑对不经常更改的文件使用 mod_expires(例如:JavaScript、CSS、图像等)。这可以减少浏览器必须发出的请求数量。
- 还可以研究 mod_deflate 以压缩基于文本的文件(PHP、JavaScript、CSS)。这可以减小文件大小,从而减少页面加载时间。请注意,它们会占用一些 CPU,因此请评估它们的性能和由此产生的服务器负载。
- 您的页面加载时间、文件和总字节数的一半或更多来自外部网站(Google、Affinity)。如果不需要或可以优化这些,您的页面加载速度会快得多。
- 这萤火虫/慢速FireFox 的扩展对于调试这类事情非常有用。运行 YSlow 扩展以获取许多其他提高页面速度的建议(请注意,YSlow 提出的并非所有建议都适用于您)。
我认为只要完成所有/部分这些就可以使您的页面平均加载时间低于 1 秒,而无需查看任何缓存层,如 Squid/Varnish(如果需要,可以通过更多的工作进一步降低它)。