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 数据集: (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – Nginx在本地作为OS X上的开发环境使用Pum
- 是否可以在不使用硬件负载平衡器的情况下平衡多个Nginx负载
- php – 使用nginx的混合IP和基于名称的虚拟主机
- 如何在nginx中配置动态SSL配置的动态虚拟主机?
- node.js – 代理WebSocket连接和短暂端口耗尽
- cache – 如何使用nginx作为缓存反向代理来替换squid/varni
- ruby-on-rails – 服务器发送的事件和Rails流
- nginx – Let’s Encrypt的中间证书
- nginx – 池www退出信号15(SIGTERM):执行超时
- ruby-on-rails – 有人试图进入我的服务器吗?
