首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清漆似乎没有使用我的“`file`”存储配置

清漆似乎没有使用我的“`file`”存储配置
EN

Server Fault用户
提问于 2021-10-04 20:31:39
回答 1查看 332关注 0票数 0

我已经将Varnish配置为使用文件存储。清漆似乎正在工作,但缓存似乎只是我指定的大小的一小部分,而我为存储指定的文件似乎还没有创建。

在进行配置更改后,我一直在运行service varnish reload来重新启动服务。这就足够了吗?

运行varnishstat显示了一个不断增加的MAIN.n_lru_nuked值,我认为这意味着它认为它已经耗尽了缓存空间,但是SMA.s0.c_bytes (我认为它是存储后端的大小?)只在3.46G

有什么办法可以调试这个吗?我的配置没被拿起来吗?

/etc/默认/清漆

的Config部分

代码语言:javascript
复制
VARNISH_LISTEN_PORT=80
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -b s3.amazonaws.com:80 \
             -u varnish -g varnish \
             -S /etc/varnish/secret \
             -s disk=file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,30G"

/etc/varnish/default.vcl

代码语言:javascript
复制
vcl 4.0;

backend default {
    .host = "cdn.webampskins.org.s3.amazonaws.com";
    .port = "80";
}

sub vcl_recv {
    set req.http.Host = "cdn.webampskins.org.s3.amazonaws.com";
}

sub vcl_backend_response {
    set beresp.ttl = 3y;
    set beresp.storage_hint = "disk";
    # I've confirmed that in my response I see this header
    set beresp.http.x-storate = "disk";

}

sub vcl_deliver {
    # Empty
}

更新:

我的文件存储配置似乎没有被获取:

代码语言:javascript
复制
~# varnishadm storage.list
Storage devices:
    storage.s0 = malloc
    storage.Transient = malloc

不知道为什么,也不知道如何调试。

EN

回答 1

Server Fault用户

发布于 2021-10-05 07:48:42

如果操作系统使用Systemd,则不要使用/etc/default/varnish配置运行时参数。

请使用以下命令编辑这些设置:

代码语言:javascript
复制
sudo systemctl edit varnish

编辑完成后,使用以下命令重新启动Varnish:

代码语言:javascript
复制
sudo systemctl restart varnish

有关通过https://www.varnish-software.com/developers/quick-start/#through-the-systemctl-edit-command二进制文件管理清漆的更多信息,请参见systemctl

警告:我们强烈反对使用file装载机。尽管与内存相比,它允许扩展缓存的大小,但它不提供任何持久性。这可能是你可以忍受的。然而,我们使用file装载机的经验是,随着时间的推移,它很容易出现磁盘碎片。摆脱碎片的唯一方法是通过定期通过varnishd完全重新启动sudo systemctl restart varnish进程。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1079544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档