我最近将客户的网站(使用crete5 CMS)移到了运行 Gentoo、Apache 2.2、PHP5 和 MySQL 5 的 VPS 上,我注意到 Apache 响应时间非常糟糕(旧服务器上的情况相同) ,有时长达 8-9 秒,但更常见的是在 300 毫秒和 3 秒之间(我不介意接近 300 毫秒)。我知道这不是网络延迟,因为服务器的 ping(从我的位置)大约 30 毫秒。
这是一个时间示例(您可以在初始等待后看到它很活泼):

我正在运行 APC(虽然我不确定它是否正常工作......)和 SuExec。Apache 模块是:
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
deflate_module (static)
log_config_module (static)
env_module (static)
expires_module (static)
headers_module (static)
setenvif_module (static)
version_module (static)
ssl_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
status_module (static)
autoindex_module (static)
asis_module (static)
info_module …Run Code Online (Sandbox Code Playgroud) 我有一组非常强大、未充分利用的服务器,它们运行着几个带有 Windows Server 2008 R2 和 IIS 7.5 的虚拟机。
问题:有时请求需要很长时间来处理。用户看到他们的浏览器在旋转,显然没有从 IIS 得到任何响应。
一些统计数据和尝试解决:
知道我还能看什么吗?什么会导致请求卡在 IIS 的“SendResponse”阶段?
我有一个 nginx 反向代理。服务器接近每秒处理 600-700 个请求。我有一个 Munin HTTP 加载时间插件,它正在输出:
现在,问题是我在图表中看到了一些尖峰。预期响应时间应始终低于 200 毫秒。我一直在关注系统日志和消息,但我无法找出造成这种情况的实际原因。我想知道是否有任何好的 HTTP 响应时间分析系统,我可以安装/嵌入此 nginx 服务器并获取有关不同事物所花费的时间的详细报告/日志以及峰值的确切原因。
分析系统还可以帮助我了解瓶颈以及如何进一步优化延迟。
现在最重要的是调查 HTTP 加载时间图中峰值的原因(外部监视器报告了类似的模式 - Pingdom)并修复它以获得一致的响应时间
谢谢
我已经使用 python 端口 mechanize - multi-mechanize测试了我的服务器¹ 。我运行了几个非常简单的测试 - 但我总是从 10 兆位下降到一些 kb 的上传带宽。我不知道为什么。
无论我跑 3.15 分钟还是 30 分钟,对结果都没有影响。有总是一个带宽下降到110和120秒之间的几乎为零,因为你可以在下面的分析给出见。我选择了短期,所以更容易发现下跌。
对 htop 的检查显示没有什么特别之处,内核运行在 2% 到 7% 之间。
内存使用量始终在 2048mb 保证内存中的 1000mb (+-100) 左右。
当我检查 iftop 时,没有什么特别的,但上传从 10 兆字节下降到几千字节约 10 秒(110-120 秒)
所有 cronjobs / 不必要的任务都被禁用。所有页面(正面/随机)均可用。每个请求都由 http 响应代码 200 回答。Apache 和 MySQL 错误日志为空。
由于我是一名边做边学的管理员,我不确定是否有更多相关信息。加载的 apache mod 是否相关?希望我提到了所有重要的事实。
[global]
run_time = 180
rampup = 0
results_ts_interval = 10
progress_bar = on
console_logging = off
xml_report = off
[user_group-1]
threads = …Run Code Online (Sandbox Code Playgroud) 我想知道最大(实际) ping 响应时间可能是多少。据我所知,任何地方都没有定义最大值(TTL,但那是跳数,而不是时间)。我想了一下,我不确定我是否见过超过一秒左右的 ping 响应时间。但据我所知,没有什么可以阻止远程主机等待(或非常忙)并且在几秒钟内不发送响应。
作为一个简单的数据点,我刚刚 ping 了世界各地的一些服务器,我发现的最差时间是 350 毫秒。
ubuntu当使用wget或 、curl、apt-get...时,我的 dns 解析速度非常慢
root@815340a37f0e:/# time curl www.google.com
...
real 0m5.132s
user 0m0.006s
sys 0m0.003s
Run Code Online (Sandbox Code Playgroud)
当我做的时候nslookup速度非常快。
root@815340a37f0e:/# time nslookup google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 173.194.78.101
...
real 0m0.024s
user 0m0.010s
sys 0m0.005s
Run Code Online (Sandbox Code Playgroud) 使用此处描述的方法来测量服务器响应时间,我可以看到time_appconnect、time_pretransfer、 和time_starttransfer非常高,但仅限于通过 HTTPS 访问网站时。
相比之下,连接到 Google 的速度非常快。
curl -w "@curl-format.txt" -o /dev/null -s "https://www.google.com"
Run Code Online (Sandbox Code Playgroud)
回报
time_namelookup: 0.014433
time_connect: 0.117187
time_appconnect: 0.374567
time_pretransfer: 0.374779
time_redirect: 0.000000
time_starttransfer: 0.513398
----------
time_total: 0.514880
Run Code Online (Sandbox Code Playgroud)
通过 HTTP 连接到我们的网站也相当快:
curl -w "@curl-format.txt" -o /dev/null -s "http://environmentaldashboard.org"
Run Code Online (Sandbox Code Playgroud)
回报
time_namelookup: 0.004136
time_connect: 0.044469
time_appconnect: 0.000000
time_pretransfer: 0.044554
time_redirect: 0.000000
time_starttransfer: 0.166275
----------
time_total: 0.166404
Run Code Online (Sandbox Code Playgroud)
但是通过 HTTPS 连接非常慢:
curl -w "@curl-format.txt" -o /dev/null -s "https://environmentaldashboard.org"
Run Code Online (Sandbox Code Playgroud)
回报
time_namelookup: 0.005211
time_connect: 0.057697 …Run Code Online (Sandbox Code Playgroud) 我在我的服务器上托管了一个带有 Smarty 缓存的 PHP/MySQL 应用程序。它通常会通过向数千名关注者发送推文来获得短暂的流量高峰。流量峰值高达 6 次/秒,持续 20-30 分钟。后来减少到不到一秒。在高峰期间,响应时间变得非常糟糕,并且要为页面提供服务长达两分钟以上。
我该如何管理?如何找出我的服务器上的瓶颈是什么?我有一个 1GB RAM 服务器托管在一个带有 CPU 峰值的云上。我应该购买更多 CPU 还是更多 RAM?
当我ping myserver.com,我得到这样的回应:
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=242 time=52.6 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=242 time=55.9 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=242 time=52.1 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=242 time=51.9 ms
Run Code Online (Sandbox Code Playgroud)
我会说,这些消息一直很慢。
现在,当我 ping google.com
64 bytes from lax17s01-in-f4.1e100.net: icmp_seq=1 ttl=52 time=175 ms
64 bytes from lax17s01-in-f4.1e100.net: icmp_seq=2 ttl=52 time=175 ms
64 bytes from lax17s01-in-f4.1e100.net: icmp_seq=3 ttl=52 time=176 ms
64 bytes from lax17s01-in-f4.1e100.net: icmp_seq=4 ttl=52 time=176 ms
64 bytes from lax17s01-in-f4.1e100.net: icmp_seq=5 ttl=52 time=175 ms …Run Code Online (Sandbox Code Playgroud)