Articles of 高负载

每天用php-fpm,nginx服务40M请求时,加载平均问题

我有FreeBSD服务器(HT,SSD,32Gb RAM的16核心),每天约有40M的HTTP请求。 所有请求都由nginx + php-fpm 。 在这些图表中,您可以看到在交通高峰期我们遇到了问题。 我不是系统pipe理员,请解释什么是“活动连接”,“写入”,“等待”,“正在读取”以及当服务器无法快速处理请求时为什么“写入”增加? 这里有一些更多的CPU,内存和负载平均图。 正如你所看到的,CPU和内存没有什么奇怪的事情发生,但Load Average也有一个高峰。 在这个Load Average高峰期间,我注意到在php-fpm.sock上有一个不存在的队列 netstat -Lan | grep php-fpm unix 2525/0/32246 /tmp/php-fpm.sock 队列中的成员数从0到12000不等。当值为0时 – 一切正常,我在60-100毫秒内得到http响应。 当值为5000-12000时可能需要3-10秒。 我也检查了是否有任何不寻常的进程,但无法find任何东西。 以下是几分钟前截图(现在一切正常,没有stream量高峰): 我的结论是:根据CPU和内存图,我可以说这个服务器可以提供越来越多的请求,但是由于php-fpm的非最优化工作,在交通高峰期是不可能的。 有关如何解决这个问题的任何build议?

高性能AWS EC2 / RDS + Nginx + PHP-FPM设置

问题的一般描述 我们目前正在运行PHP的PaaStypes解决scheme上的应用程序。 他们的解决scheme基于AWS云计算,由于他们的计划不适合我们的扩展需求,我们决定直接迁移到AWS,应用程序在每分钟400个请求的应用程序响应中执行“很好”〜100ms在生产中,但在AWS上进行响应需要很长时间。 请记住,这些请求中的每一个都会执行数据库插入+一些计算统计信息的昂贵select。 当前AWS安装尝试 1中RDS服务器(这是不是瓶颈,因为我已经检查)1中型运行nginx + PHP的r3 EC2服务器FPM + Ubuntu的x64 14.04我一直在运行一些基准,并试图模拟我们的正常stream量负载尽可能接近它只是在恒定的负荷下开始行动。 当前使用Config Nginx的 user www-data; worker_processes 2; pid /run/nginx.pid; worker_rlimit_nofile 30000; events { worker_connections 8192; #multi_accept on; use epoll; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay off; keepalive_timeout 30; types_hash_max_size 2048; server_tokens off; # increase buffer and timeouts […]

在很多stream量下,高networkingsoftirq请求内核3.10

我们一直在试验推出由centos通过centosplus v6提供的3.10系列内核。 我们已经注意到一些有趣的地方,在相同的负载下,服务器的负载是在3.10系列上的6-7倍,然后是2.6系列。 使用顶部,我们注意到这个过程使用了大量的CPU [kworker/u66:2] 这导致我们安装powertop ,然后看到这一点 Usage Events/s Category Description 1110 ms/s 2045.2 Process php-fpm: pool www 36.0 ms/s 2165.4 Timer tick_sched_timer 57.7 ms/s 1285.0 Process nginx: worker process 13.3 ms/s 416.0 Timer hrtimer_wakeup 39.1 ms/s 350.7 Interrupt [3] net_rx(softirq) 在2.6系列上获得相同的stream量也是如此 Usage Events/s Category Description 1795 ms/s 1654.0 Process php-fpm: pool www 45.3 ms/s […]

利用nginx VPS负载testing识别瓶颈

我试图优化一个数字海洋液滴(512mb),使用loader.io进行testing 我正在testing我的主页,这是HTTPS / PHP。 我设置了FastCGI页面caching,从100 req / sec到2000 req / sec。 但是超过2000 req / sec的任何事情都会导致很多超时和缓慢的响应(平均从20ms到1500ms)。 我试图找出瓶颈。 这不是CPU /内存,因为负载刚刚达到0.30,内存使用量大约是一半。 我尝试调整到更大的水滴,超时仍然发生。 这不是FastCGI,因为基本的.html文件的负载testing性能几乎相同。 在超时期间,error.log是空的。 没有什么似乎是抛出错误(我可以find)。 Kern.log有这个日志: TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters TCP: Possible SYN flooding on port 443. Sending cookies. Check SNMP counters. 我试图禁用syncookies,它停止了这些错误,但超时仍然存在。 在超时期间,我开始看到TIME_WAIT的积累: netstat -ntla | awk '{print $6}' […]

FreeBSD显示高负载,找不到瓶颈

所以我们build立了一个服务器( 11.0-RELEASE-p2 ),主机大约有150-200个监狱。 服务器有24个内核和192g的ram。 当使用顶部时,它显示没有压力的迹象 – 除了高负荷。 所有的jail驻留在NFS挂载上,每个jail在创build时都挂载自己的目录。 服务器不会感觉到任何慢,它相当活泼。 困扰我们的一件事是我们得到的高负荷。 从顶部输出: last pid: 71841; load averages: 320.13, 131.33, 79.28 up 27+17:45:03 10:37:48 5325 processes:1 running, 5324 sleeping CPU: 4.4% user, 0.0% nice, 1.6% system, 0.4% interrupt, 93.6% idle Mem: 3116M Active, 23G Inact, 23G Wired, 900M Buf, 138G Free ARC: 10G Total, 2612M MFU, 4553M […]

网站如何变得缓慢? 打开睡眠过程?

我的网站是由高MYSQL CPU随机非常慢,我不知道是什么问题。 希望我会接近这个职位的解决scheme。 如果我检查mysql进程,当网站很慢时,我会看到很多打开的睡眠命令。 没有开放的睡眠命令时,没有问题。 所以问题可能在那里。 奇怪的是,这个问题有时只会发生。 有时候我四周没问题,现在网站已经连续3天慢了。 我已经将time_out mysql设置设置为30秒,但这并不能解决问题。 所以现在我试图找出问题所在。 这里是警报状态variables。 也许这给了一些额外的见解。 难道是垃圾邮件/暴力攻击? 沉重/慢速查询的网站? 服务器设置错误? Sql注入? 其他事情,这个问题可以导致? 现在解决这个问题的最好方法是什么? 发送任何方向已经有所帮助。

250k连接与彗星node.js

如何实现node.js能够处理250k连接作为彗星服务器(客户端我们使用socket.io)? 将nginx用作代理/负载均衡是否是正确的解决scheme? 或者HA-Proxy会是更好的方法吗? 有没有人有100k +连接的真实世界的经验,可以分享他的设置? 像这样的设置是正确的(每个服务器的四核CPU – >每个服务器启动4个node.js的实例?): nginx (as proxy / load balancing server) / | \ / | \ / | \ / | \ node server #1 node server #2 node server #3 4 instances 4 instances 4 instances

debugging突然的负载峰值

我需要自动debugging突然的负载峰值。 我们已经像检查脚本一样监视着Nagios,但是负载峰值很less。 我search一个守护进程,每N秒检查一次负载,如果有麻烦,报告类似ps aux –forest (和iotop –batch) 用munin创build的graphics在这里没有帮助,因为我需要确定导致负载的过程。

Nginx和php-fpm在高负载下失败:“端口80可能发生SYN溢出”和“104:由对等端重置连接”

我有相当沉重的Web服务器使用: Ubuntu server nginx php-fpm + apc 昨天我的服务器发生了一些奇怪的事情。 它崩溃,并停止响应,并在我重新启动后,网页开始加载非常缓慢,在大多数情况下“请求超时”。 我检查了/var/log/syslog并看到了很多消息,例如: TCP: Possible SYN flooding on port 80. Sending cookies. 页面大约需要2分钟才能在本地加载: time wget -O /dev/null mysite.net –2012-12-21 13:17:15– http://mysite.net/ Resolving ficbook.net… 85.254.49.180 Connecting to mysite.net|85.254.49.180|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 1311 (1.3K) [text/html] Saving to: `/dev/null' 100%[========================================================================================================>] 1,311 –.-K/s in 0s 2012-12-21 […]

Linux网卡绑定失败; 奇怪的CPU负载

注意:更新如下所示 对于使用802.3ad NIC绑定的Linux服务器( Debian 6.0.6 ),我遇到了一个很奇怪的问题。 债券中的所有网卡有时会被标记为closures, events进程在单个线程上100%的CPU利用率下运行。 除了重新启动服务器之外,没有任何办法可以使绑定恢复; 那么一切都恢复正常。 正在使用的NIC是Intel VT Quad Port Server Adapter并且所有四个端口都已绑定。 802.3ad已经在交换机(Netgear智能交换机)上正确启用并正常运行。 在重新启动后,日志中没有任何内容出现,但是在发生崩溃/故障后检查terminal时,已经打印了无法重置NIC的错误消息。 我不记得确切的消息; 我期望他们在一个日志文件,所以我刚刚重新启动服务器备份。 这是如何configuration债券: ############################ # modprobe.d configuration # ############################ alias bond0 bonding options bond0 mode=4 miimon=100 arp_interval=100 arp_ip_target=10.1.1.1 max_bonds=2 # Another bonding rule for two other NICs… ############################ # relevent lines in # # /etc/network/interfaces # ############################ […]