我有一台运行自定义 Wordpress+bbPress 组合的 LAMP 服务器(基于 CentOS 的 MediaTemple (DV) Extreme,具有 2GB RAM)。
每天大约有 30k 的浏览量,服务器开始抱怨。今天早些时候,当车流涌入时,它绊倒了大约 5 分钟。即使在正常情况下,我也可以看到虚拟服务器有时处于 90% 以上的 CPU 负载。使用 Top 我经常可以看到 5-7 个 httpd 进程,每个进程都使用 15-30%(有时甚至 50%)的 CPU。
在我们进行大的优化之前(我们使用 MySQL 可能是罪魁祸首),我很想找到主要违规的页面并首先处理它们。有什么方法可以找出哪些特定请求对 CPU 消耗最大的 httpd 进程负责?我发现了很多关于优化的一般信息,但没有找到关于这个特定问题的信息。
其次,我知道有一百万个变量,但是如果您对我们是否应该使用具有这种规模的站点的单个专用虚拟服务器处于性能边界有任何见解,那么我很想听听您的意见。我们应该考虑迁移到更强大的服务器,还是应该专注于优化当前服务器?
performance lamp performance-monitoring performance-tuning top
我想知道 tailf 是否可以生成阻塞 I/O,这会因日志记录而降低服务器响应速度。
例如。假设以下设置:
通过终端管理的 Debian 5.1 linux 服务器 (foo)(foo 托管在 EC2 上)。
Foo 运行多个应用程序,每个应用程序都写入自己的日志文件。例如,Apache httpd 到 /var/log/apache/access.log & Tomcat 5.5 到 /var/log/tomcat5.5/myApp.log。
如果我打开到 foo 的 ssh 连接(注意:Internet 链接、高延迟、上传速度相对较慢)并运行,tail -F /var/log/apache/access.log我无法达到内核阻止 httpd 写入此日志文件的情况,从而降低了 httpd 的性能,因为对每个线程强制执行等待?
为了给出一些数字,让我们假设 foo 每秒记录约 200kb 的日志数据,这些数据需要通过线路推送到 ssh 客户端。
另一个理论方面:如果 /var/log 文件系统设置在无限大小的 ram 上(记住:理论上)会发生什么,从而消除硬盘寻道时间?
第三方面,如果我从一个非常慢的链接打开 ssh 连接会发生什么(假设 foo 的流量形状为仅推送 5kb/s 上传)?
很想听听你们的想法。
感谢阅读,马克西姆。
我们正在为大约 10k+ 并发用户在生产中运行 haproxy。但是我们在 netstat 输出中看到了很多 FIN_WAIT2、CLOSE_WAIT、LAST_ACK 和 TIME_WAIT。此输出位于 8G ubuntu-12.04 节点上。
8046 CLOSE_WAIT
1 CLOSING
1 established)
40869 ESTABLISHED
1212 FIN_WAIT1
7575 FIN_WAIT2
1 Foreign
2252 LAST_ACK
7 LISTEN
143 SYN_RECV
4920 TIME_WAIT
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我需要做什么调整吗?
请注意,所有这些连接都是持久连接。
tcp_fin_timeout = 30
tcp_keepalive_time = 1800
Run Code Online (Sandbox Code Playgroud)
现在,该应用程序运行良好。但是想知道当我们向这个 haproxy 节点添加更多用户时会不会有任何问题。
我的网站在任何地方都强制使用 HTTPS,平均首次加载时间为 3-5 秒。由于缓存,重复加载时间为 0.8 秒。
SSL 协商在我的服务器上需要 150-300 毫秒,因此我希望尽可能频繁地保持每个连接处于活动状态以防止延迟。
SSLSessionCache 设置为默认的 300 秒。
Apache KeepAlive 超时最近从 5 秒降低到 2 秒。
此更改导致服务器平均负载显着降低(平均 5% 而不是平均 10%),但我想知道如果首次加载时间为 3-5 秒,它是否也可能导致首次加载时间变慢?这是否意味着它必须在每次超过 2 秒超时时再次执行 SSL 协商?
使用更少的 SSL 协商(但更多睡眠 httpd 任务)获得略高的平均负载,还是使用更多 SSL 协商获得更低的平均负载更好?
我们肯定有足够的 CPU 和内存资源可供使用。所以最终的问题是,什么会为我们的观众带来最佳表现?将 KeepAlive 超时提高到 3-5,还是保持在 2?
谢谢!
我正在使用/run/shm/myfoldernginx 微缓存,还将ngx_pagespeed文件保存在那里。我想知道如果我从relatime到会不会有速度增加noatime?它是用于硬盘驱动器的,但tmpfs它会改变什么?
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=9929500k)
Run Code Online (Sandbox Code Playgroud) 当要求客户在他们的数据中心启用 RSS 以提高网络性能(每秒 UDP 包的速率非常高)时,我被告知他们通常将其关闭,因为在过去的各种问题之后,微软和硬件供应商(我相信是 HP)经常会要求他们关闭 RSS,因为它可能会破坏稳定。
这个花絮,以及尽管 RSS 在 Windows 2008 中默认全局启用(我在 2008 R2 中验证过),但在 2012 年(在 2012 R2 中验证)默认情况下已更改为“禁用”的额外观察结果,让我相信不稳定的说法可能有一定的道理。但是谷歌在这里似乎不是我的朋友。在有关Windows 2012 中 RSS 改进的 TechNet 页面上,RSS似乎很稳定(我自己在非常高规格的 Win2012R2 系统上对扩展 UDP 接收的测试证实了这一点)并且仍然是扩展的方式。
这里有没有人对 RSS 和稳定性有好的/坏的经验可以分享,或者有一些关于它的问题的指针?
networking windows-server-2008 scalability performance-tuning windows-server-2012
我已经研究了一段时间了,但事情并不符合我的期望,但我不知道是因为有什么不对,还是我的期望是错误的。
所以,我有一个内存超过 100GB 的系统,我将我的内存设置dirty_background_bytes为 9663676416(9GB)和dirty_bytes两倍(19327352832 或 18GB)
在我看来,这应该让我最多可以将 9GB 写入文件,但实际上它只是位于内存中,不需要访问磁盘。Mydirty_expire_centisecs是默认值3000(30 秒)。
所以当我运行时:
# dd if=/dev/zero of=/data/disk_test bs=1M count=2000
Run Code Online (Sandbox Code Playgroud)
并跑了:
# while sleep 5; do egrep 'Dirty|Writeback' /proc/meminfo | awk '{print $2;}' | xargs; done
Run Code Online (Sandbox Code Playgroud)
(以 kb 为单位打印脏字节,以 kb 为单位打印回写,在 5 秒快照时以 kb 为单位打印 WritebackTmp)
我本来希望看到它转储 2GB 到页面缓存中,在那里等待 30 秒,然后开始将数据写入磁盘(因为它从未超过 9GB 背景比率)
相反,我看到的是:
3716 0 0
4948 0 0
3536 0 0
1801912 18492 0
558664 31860 0
7244 0 0
8404 0 …Run Code Online (Sandbox Code Playgroud) 如何在 ubuntu 服务器上从 prefork mpm 切换到 worker mpm?
如果有问题如何回滚?
root@myserver:~# apache2ctl -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c
root@myserver:~# aptitude search apache2-mpm-
p apache2-mpm-event - Event driven model for Apache HTTPD
p apache2-mpm-itk - multiuser MPM for Apache 2.2
p apache2-mpm-perchild - Transitional package - please remove
i A apache2-mpm-prefork - Traditional model for Apache HTTPD
p apache2-mpm-worker - High speed threaded model for Apache HTTPD
root@myserver:~#
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我有一个 Ubuntu 10.10 服务器,有足够的 RAM、带宽和 CPU。当从 Apache 和 nginx 提供静态文件时,我看到延迟分布中有一种奇怪的、可重复的模式。因为这个问题对两个 http 服务器都很常见,我想知道我是否配置错误或调整不当 Ubuntu 的网络或缓存参数。
ab -n 1000 -c 4 http://apache-host/static-file.jpg:
Percentage of the requests served within a certain time (ms)
50% 5
66% 3007
75% 3009
80% 3011
90% 9021
95% 9032
98% 21068
99% 45105
100% 45105 (longest request)
Run Code Online (Sandbox Code Playgroud)
ab -n 1000 -c 4 http://nginx-host/static-file.jpg:
Percentage of the requests served within a certain time (ms)
50% 19
66% 19
75% 3011
80% 3017
90% 9021
95% 12026 …Run Code Online (Sandbox Code Playgroud) 我们有一台运行 RHEL 6.10 和 2 X 的 HP ProLiant DL360 G9 Intel 82599ES 10-Gigabit SFI/SFP+。HP 产品名称是HP Ethernet 10Gb 2-port 560SFP+ Adapter
eth5并eth6显示大量数据包丢失 ( rx_missed_errors) 我禁用了 NIC 级别的流量控制,然后rx_missed_errors停止增加但rx_no_dma_resources开始每天增加。
环参数eth5和eth6处于最大值相同,已经。
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: …Run Code Online (Sandbox Code Playgroud) performance ×4
linux ×3
ubuntu ×2
apache-2.2 ×1
apache-2.4 ×1
conntrack ×1
filesystems ×1
haproxy ×1
https ×1
io ×1
keepalive ×1
lamp ×1
linux-kernel ×1
logging ×1
mpm-prefork ×1
mpm-worker ×1
networking ×1
optimization ×1
scalability ×1
ssh ×1
tmpfs ×1
top ×1