我有这样的任务
我有文件存储,大约50 GB
几乎所有的文件都是100 KB-〉3 MB。也有~ 25 MB的跟踪文件-但这些文件经常被下载
我的任务是配置软件,以确保从我的Linux服务器获得最佳下载性能
伺服器:
- 系统:Ubuntu 20
- 磁盘:SSD NVMe
- 内存64 GB
- CPU数量:12
- 互联网:1 Gbit/s
我尝试了以下组合
1.恩金
1.上光液+ Nginx
但我面临的问题是,文件下载速度高达1 MB每秒-即使我改变了Nginx中的设置
- 平均下载时间16秒= 25 MB-从我的服务器
- 2-3秒-25 MB-来自Firebase服务器
什么软件可以适合解决我的问题?或者我需要往哪个方向看?
1条答案
按热度按时间c7rzv4ha1#
Varnish Cache是Varnish的开放源代码版本,可以在一台机器上处理高达100 Gbps的吞吐量。因为您的NIC被限制为1 Gbps。
如果您希望50 GB的目录始终存储该高速缓存中,请确保通过将
-s
选项设置为正确的值,为varnishd
运行时进程分配至少50 GB。请记住,Varnish还需要内存来处理各个线程上的工作负载。
确保
/etc/varnish/default.vcl
中的VCL配置已正确配置为该高速缓存提供这些文件。如果这些文件是静态的,则可以为每个缓存对象分配一个很长的TTL,以确保始终该高速缓存中提供这些文件。
如果文件目录增长并超过了您设置的50 GB限制,请增加该高速缓存的大小,或者接受将从高速缓存中删除最近请求最少的对象以释放空间用于新对象的事实。
调整高速缓存的大小是一个折衷方案,它还取决于提取某些对象的频率。高速缓存未命中对源Web服务器的影响也是一个要记住的因素。
一般来说,我建议您将服务器80%的内存分配给Varnish进行缓存,除非您遇到超出Varnish基本线程设置的疯狂流量峰值,否则不会有问题。
这是一个非常基本的高级答案,但它验证了Varnish是加速您在问题中提到的50 GB内容的候选者。