linux – 您使用什么类型的Web服务器硬件来处理100 Mbps的静态
我目前使用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 最佳答案
我不认为你的磁盘是问题.首先,nginx的ncache使用磁盘存储进行缓存.因此,根据您的数据集的热/冷程度,磁盘速度将成为问题的一个潜在原因,但是,我认为您没有理由不能使用您提到的硬件提供100mb /秒 – 特别是如果您’重新使用nginx.
我猜的第一件事是你的工作进程数量很少,你的worker_connections可能太低了,你可能没有把你的open_file_cache设置得足够高.但是,这些设置都不会导致高IO等待或类似尖峰.你说你正在提供< 50k图像,看起来你的设备的1/4很容易被操作系统缓冲. Nginx肯定没有最佳配置. Varnish以稍微不同的方式使用RAM而不是磁盘来处理问题. 很大程度上取决于您的数据集,根据您提供的数据,我认为没有任何理由让磁盘IO像这样尖刺.你检查了dmesg和日志,看看你的某个驱动器当时是否遇到了一些IO错误?我能想到的另一件可能导致峰值的事情是超出了nginx的文件缓存,这会导致它必须进入FIFO模式打开新文件. 确保您的文件系统安装了noatime,这应该会减少相当数量的写入工作量. 作为定期处理800mb /秒的机器的示例:
MRTG: http://imgur.com/KYGp6.png 数据集:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Nginx多个服务器块侦听同一个端口
- ruby-on-rails – SSH和-bash:fork:无法分配内存VPS Ub
- ruby-on-rails-使用Nginx的Rails的多阶段环境
- nginx要怎么配置rewrite才能运行vephp、yii和thinkphp等MVC
- nginx可以作为不接受明文登录的后端服务器的邮件代理吗?
- NGINX/PHP下载而不是执行
- 将Nginx和uWSGI Web服务器错误记录到Sentry
- 如何将经过身份验证的Nginx用户映射到他们自己的目录?
- nginx比apache处理静态文件速度快,但是nginx处理大量并发的
- 在Heroku上部署Django/Static文件的正确方法