Nginx导致高负载,没有多less活动连接

我有一个Linux机器64位(centos5.5),2.83GHz的Q9550,6GB内存和一个单一的SATA 500GB驱动器。

在这台机器上,我只能提供缩略图,大部分大小在10kb左右,此时服务器上有大约700万个缩略图。 我有他们安装在一个/ 25/25/25/25文件夹设置向我推荐。

平均而言,nginx状态报告显示即时消息服务大约300到400个活动连接。

例:

Active connections: 297 server accepts handled requests 1975808 1975808 3457352 Reading: 39 Writing: 8 Waiting: 250 

现在的问题是,这台机器的时间非常辛苦,而且由于我的网站比较忙,所以速度越来越慢。 负载总是在8到9左右。

我注意到iostat显示超过100%的实用程序。

 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.20 1.40 99.80 31.14 1221.56 255.49 11.28 114.14 831.81 7.62 99.84 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.20 0.60 100.80 24.00 1192.00 203.20 11.18 113.77 775.42 8.02 100.04 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.20 314.80 44.80 130.00 598.40 3547.20 23.72 113.76 937.18 5.72 100.02 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 5.40 56.20 110.80 660.80 937.60 9.57 112.37 518.01 5.99 100.04 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.60 12.40 82.80 41.60 1008.00 432.00 11.58 113.66 852.51 8.04 100.04 

下面你可以看到我的一些nginxconfiguration设置:

 worker_processes 6; worker_connections 4096; http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 4; gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 2; gzip_proxied any; gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_buffers 16 8k; } 

我的问题是,除了转移到RAID设置,还有可能SSD,有什么我可以调整/调整,以获得更多的这台机器? 我有一种感觉像我这样的服务器应该能够处理比每秒大约300到400个有效的nginx连接。

  • 禁用access_log
  • 使用open_file_cache
  • 安装选项:asynchronous,noatime
  • 增加vm.dirty_writeback_centisecs(15000)
  • 使用过期
  • 更新硬件(更多内存,高达24Gb; RAID或SSD)
  • 使用gzip_static

我使用btrfs ssd软RAID(mkfs.btrfs -m single / dev / sde -d raid0 / dev / sdd / dev / sdc)