mbs654321 发表于 2024/11/16 01:28

kangle的智能缓存问题

我点击了格式化磁盘目录,然后提交保存设置

然后去请求一次文件

但是缓存没有出现

如果我把普通缓存的大小增加到文件大小20M,缓存就有了。这是为啥?kangle对本地的文件不会主动缓存吗?但我看kangle请求文件过后,free -h里显示系统缓存那里也没有增加,nginx默认配置系统文件缓存是有的,这样下次访问会直接从缓存里走,速度会快一些

小樱 发表于 2024/11/16 01:38

你猜的没错,一般情况下本地静态文件不会进行磁盘缓存,直接调用系统sendfile函数输出数据
比如说使用fastcgi,或者上游反代http协议时候,或者数据经过了某些模块处理,才会进行磁盘缓存
如果你要nginx那种效果,可以把智能缓存关闭,也就是智能这一项设置值为0,此时缓存模式转为只使用普通缓存,在设置的大小阈值内任何访问数据都会被内存缓存,简单点说一个是内存一个是磁盘
但是不推荐直接关闭智能缓存这么做,智能缓存才是kangle最大的特色,也是全球首创支持范围缓存的web软件,比如说 curl -r 0-999 的情况下,可以进行缓存特定的部分数据,非常适合mp4文件拖拉进度条的情况

mbs654321 发表于 2024/11/16 02:06

小樱 发表于 2024/11/16 01:38
你猜的没错,一般情况下本地静态文件不会进行磁盘缓存,直接调用系统sendfile函数输出数据
比如说使用fast ...

那kangle的智能缓存通常什么时候用上呢,是反代吗

mbs654321 发表于 2024/11/16 02:09

小樱 发表于 2024/11/16 01:38
你猜的没错,一般情况下本地静态文件不会进行磁盘缓存,直接调用系统sendfile函数输出数据
比如说使用fast ...

懂了,谢谢小樱

mbs654321 发表于 2024/11/16 13:23

小樱 发表于 2024/11/16 01:38
你猜的没错,一般情况下本地静态文件不会进行磁盘缓存,直接调用系统sendfile函数输出数据
比如说使用fast ...

这个缓存机制应该和智能缓存的大小无关,只要把普通缓存调大,哪怕智能缓存大小不为0也会进缓存。
但这样大文件进缓存,下次请求这个文件会卡死,不清楚为什么

mbs654321 发表于 2024/11/16 14:48

还有就是,我把内存缓存调整为2G,我的空闲内存为5G,但kangle仍然会把1G的缓存文件放到硬盘而非内存里

mbs654321 发表于 2024/11/16 15:12

mbs654321 发表于 2024/11/16 14:48
还有就是,我把内存缓存调整为2G,我的空闲内存为5G,但kangle仍然会把1G的缓存文件放到硬盘而非内存里

哦,我知道了,智能缓存都是走磁盘的
页: [1]
查看完整版本: kangle的智能缓存问题