纯静态的服务器,高读写导致 io 居高不下,很多静态文件都要过很久才能打开,而服务器 64G 内存实际占用了 1G 左右,有没有方法利用内存缓解一下 io ?
纯静态的服务器,高读写导致 io 居高不下,很多静态文件都要过很久才能打开,而服务器 64G 内存实际占用了 1G 左右,有没有方法利用内存缓解一下 io ?
|
podelMar 3, 2020
1
linux 本身就有把内存当错 file buffer 的功能。
如 total used free shared buff/cache available Mem: 16262080 5732676 2309932 21392 8219472 10236760 Swap: 0 0 0 buff/cache 就是用内存缓存的文件。windows 也有类型的功能。 |
|
realpgMar 3, 2020
2
你静态文件总量多大?
|
|
LaxMar 3, 2020
3
写入也多?
|
|
xsir2020Mar 3, 2020
4
nginx + redis 静态文件缓存命中就直接从 redis 里面取,速度会快很多。
|
|
fancy111Mar 3, 2020
5
静态转动态,读入缓存。
|
|
qwerthhusnMar 3, 2020
6
|
|
dusuMar 3, 2020 via iPhone
7
I/O 高不一定是读文件的问题
也有可能是文件数量多导致 |
|
8
当然可以,nginx 开启缓存功能非常强大。分为 4 级:
1,开启客户端 cache,设置 expires 头; 2,开启文件系统缓存,open_file_cache 相关; 3,开启代理缓存,设置 proxy_cache 相关; 4,开启脚本缓存,设置 fastcgi cache 相关; 1,2 参考 https://stackoverflow.com/questions/19515132/nginx-cache-static-files 3 参考 https://www.nginx.com/blog/nginx-caching-guide/ 4,参考 https://www.digitalocean.com/community/tutorials/how-to-setup-fastcgi-caching-with-nginx-on-your-vps 附赠思考题:如何查看 IO 用在了哪里? |
|
sockpuppet9527Mar 3, 2020
9
小文件 + nvme 盘 可以看看 spdk。
|
|
hankai17Mar 3, 2020
10
小文件多 那就上缓存
|
|
dorothyRENMar 3, 2020
11
把静态文件直接扔到 /dev/shm 下面
|