我目前使用Amazon S3来满足我的大部分静态文件服务需求,但我的每月账单变得非常昂贵.我使用日志做了一些粗略的计算,在高峰时段,我最昂贵的亚马逊桶正在处理大约100 180 Mbps的流量.大多数图像低于50K.
S3在存储和冗余方面非常有用,但如果我能帮助它,我真的不需要为带宽和GET请求付费.我在自己的数据中心有足够的廉价带宽,所以我将Nginx服务器配置为缓存代理,然后使用我的大部分文件(大约240 GB)启动缓存,这样我的磁盘就不会像疯了一样写空缓存.
我试过切断我的my server choked.
看起来我的磁盘是问题 – 这台机器在RAID 10中设置了4 x 1 TB SATA磁盘(Barracuda XT).这是我手头上唯一拥有足够存储空间的东西.我非常肯定Nginx已经正确设置,因为我已经将它用作另一个较小的亚马逊存储桶的缓存代理.假设这对于单台机器而言是合理的流量,那么SSD可能值得一试.
如果您处理大量静态文件服务,您使用什么硬件?
附加信息
文件系统:ext4,安装noatime,barrier = 0,data = writeback,nobh(我在控制器上有备用电池)Nginx:worker_connections = 4096,worker_rlimit_nofile 16384,worker_processes 8,open_file_cache max = 100000 inactive = 60m
我猜的第一件事是你的工作进程数量很少,你的worker_connections可能太低了,你可能没有把你的open_file_cache设置得足够高.但是,这些设置都不会导致高IO等待或类似尖峰.你说你正在提供< 50k图像,看起来你的设备的1/4很容易被操作系统缓冲. Nginx肯定没有最佳配置. Varnish以稍微不同的方式使用RAM而不是磁盘来处理问题. 很大程度上取决于您的数据集,根据您提供的数据,我认为没有任何理由让磁盘IO像这样尖刺.你检查了dmesg和日志,看看你的某个驱动器当时是否遇到了一些IO错误?我能想到的另一件可能导致峰值的事情是超出了Nginx的文件缓存,这会导致它必须进入FIFO模式打开新文件. 确保您的文件系统安装了noatime,这应该会减少相当数量的写入工作量. 作为定期处理800mb /秒的机器的示例:
# uptime
11:32:27 up 11 days,16:31,1 user,load average: 0.43,0.85,0.82
# free
total used free shared buffers cached
Mem: 8180796 7127000 1053796 0 1152 2397336
-/+ buffers/cache: 4728512 3452284
Swap: 8297568 237940 8059628
Quadcore Xeon:
Intel(R) Xeon(R) cpu X3430 @ 2.40GHz
$./bw.pl xxx.xxx 2010-09-01 2010-09-30
bw: 174042.60gb
average 543mb/sec,peaks at 810mb/sec
=== START OF INFORMATION SECTION === Model Family: Seagate Barracuda
7200.12 family Device Model: ST3500418AS Serial Number: 6VM89L1N
Firmware Version: CC38 User Capacity:
500,107,862,016 bytes
Linux 2.6.36-rc5 (xxxxxx) 10/04/2010 _x86_64_ (4 cpu)
avg-cpu: %user %nice %system %iowait %steal %idle
4.33 0.00 2.40 5.94 0.00 87.33
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 109.61 19020.67 337.28 19047438731 337754190
avg-cpu: %user %nice %system %iowait %steal %idle
8.09 0.00 3.40 10.26 0.00 78.25
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 138.52 21199.60 490.02 106210 2455
avg-cpu: %user %nice %system %iowait %steal %idle
3.74 0.00 3.25 9.01 0.00 84.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 125.00 21691.20 139.20 108456 696
avg-cpu: %user %nice %system %iowait %steal %idle
4.75 0.00 3.12 14.02 0.00 78.11
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 154.69 19532.14 261.28 97856 1309
avg-cpu: %user %nice %system %iowait %steal %idle
6.81 0.00 3.36 9.48 0.00 80.36
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 112.80 17635.20 309.00 88176 1545
MRTG:
数据集:
# du -sh ads
211.0G ads
# ls|wc -l
679075