对于模糊主题标题的道歉,总结下面的内容被certificate是有点复杂的,因为标题是,原因不明。 无论如何,足够的借口…
今天早上我发现我的网站运行速度非常慢,现在这种情况通常不会发生,所以我显然是在试图追查问题的原因。 知道我最近没有安装或更改任何东西,我的第一个端口是检查资源使用统计,这些显示没有什么特别之处:
load average: 0.35, 0.34, 0.36
在大约半个小时的时间内(用户报告停机时间),检查时间不会超过1秒。因此,这不是“传统负载”。 所以我正在寻找其他潜在的原因。
上面也没有显示出任何与众不同的地方:
top - 08:34:34 up 1:33, 1 user, load average: 0.30, 0.36, 0.35 Tasks: 146 total, 1 running, 145 sleeping, 0 stopped, 0 zombie Cpu0 : 6.6%us, 1.3%sy, 0.0%ni, 91.1%id, 0.7%wa, 0.0%hi, 0.3%si, 0.0%st Cpu1 : 0.0%us, 0.0%sy, 0.0%ni, 99.3%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4016884k total, 1367624k used, 2649260k free, 5324k buffers Swap: 3919840k total, 0k used, 3919840k free, 769024k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2593 apache 15 0 446m 66m 40m S 7.6 1.7 1:13.64 httpd 2450 mysql 15 0 257m 48m 5976 S 0.3 1.2 4:20.51 mysqld 9734 root 15 0 12740 1296 932 R 0.3 0.0 0:00.24 top 1 root 18 0 10348 752 628 S 0.0 0.0 0:04.91 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/1
于是我开始看networking,下面的命令(我从一个关于DDOS攻击的SF问题中拿出来):
netstat -n | grep:80 | cut -c 45- | cut -f 1 -d':'| sort | uniq -c | sort -nr | more
得到:
534 5 1.1.1.1 4 2.2.2.2 4 3.3.3.3 3 4.4.4.4 2 5.5.5.5 2 6.6.6.6 2 7.7.7.7 1 8.8.8.8 1 9.9.9.9 1 10.10.10.10 1 11.11.11.11
IP地址编辑出来
那里也没有什么异乎寻常的东西,虽然我不确定534是什么意思。 为了好的措施,我也重新启动了服务器(使用Windows这么久以后的习惯的力量)),但是这并没有什么区别。
所以,现在我发现自己不知所措,我无法解释这里发生了什么,这当然意味着我无法解决这个问题。
服务器详细信息这是一个具有以下规范的专用服务器:
这个站点服务器PHP页面(仅vbulletin)通过Apache与MySQL后端,我也运行APC作为操作码的cacher。
编辑 – 更多信息可能不会有用…
在Firefox中使用Firebug我一直在寻找页面的加载时间。 似乎正在发生的事情是,一个随机资源(有时是一个图像,一个JS文件或一个CSS文件)需要花费过多的时间来完成接收。 请求在几毫秒内完成,但接收有时需要一分钟以上。 然而,这是一个随机资源,我提出的每个请求都有一个需要很长时间才能回来的资源。 我没有任何caching等这些资源的地方,这些从文件系统通过Apache正常服务。
从iostat 编辑输出:
Linux 2.6.18-164.11.1.el5 12/10/2010 avg-cpu: %user %nice %system %iowait %steal %idle 4.66 0.00 2.08 0.84 0.00 92.42 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 12.48 78.48 144.52 1008089 1856500 sda1 0.43 2.52 6.95 32354 89224 sda2 0.01 0.11 0.00 1356 0 sda4 0.00 0.00 0.00 10 0 sda5 0.48 5.33 1.61 68413 20706 sda6 11.57 70.51 135.97 905732 1746570 sdb 12.43 78.57 144.52 1009340 1856500 sdb1 0.43 2.24 6.95 28768 89224 sdb2 0.00 0.08 0.00 1068 0 sdb4 0.00 0.00 0.00 10 0 sdb5 0.45 5.35 1.61 68729 20706 sdb6 11.53 70.88 135.97 910533 1746570 md1 0.91 4.72 5.96 60666 76520 md6 14.70 141.37 126.26 1815945 1621898 md5 0.57 10.65 1.05 136822 13474
编辑
如果我给你们网站的URL,这可能是有用的:
HTTP://www.therev [REMOVETHIS] counter.com
那么,如果问题发生在静态文件上,这很好,因为至less你知道开始看Apache。 你可能会打算debugging和分析工具,看看到底发生了什么问题。 假设你正在谈论一个Linux系统, strace可能是你想要的工具。 使用-f和-c选项,它将遵循所有派生的subprocess,并总结每个系统调用花费的时间。 这应该有希望帮助你找出问题。
停止Apache,然后通过strace重新启动它:
strace -cf /usr/sbin/httpd
(strace确实有一个-p选项来跟踪现有进程的pid,但即使使用-f它也不会跟踪在strace被调用之前分叉的subprocess。)
让它运行一段时间,一边运行,一边运行,直到你可以触发几次减速,然后中断它。 分析结果。
如果事实certificate问题出在用户模式的应用程序代码而不是系统正在做的事情上,有一个名为ltrace的伴随程序可以用来总结在各种共享库调用中花费的时间。
这可能不言而喻,但也检查您的服务器,系统和内核日志,以确保您没有看到任何意外的故障或硬件事件。
你采取了什么措施来排除客户的问题? 随机资源请求的最servlets器负载和间歇延迟会让我想排除实时文件扫描器的罪魁祸首。 这可能会有所改变,但排除在外应该是微不足道的。