AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[cache](server)

Martin Hope
Vlastimil Burián
Asked: 2024-09-30 05:35:17 +0800 CST

使用 NVMe 驱动器作为我们的 Synology NAS 的缓存是否有意义?

  • 6

我有一家小公司。之前对 NAS 解决方案知之甚少/经验不足。预算有点问题,我的预算上限是 40,000 捷克克朗 =~ 1800 美元。首先,最好告诉你我选择了什么解决方案:

Synology DS923+已插入:

  • 首先我要说一下 UPS,我已经用了 3 个月了,它通过 USB 向 NAS 发送信号(这显然不属于预算的一部分);
  • 所包含的 RAM 数量简直是笑话,所以我给它配备了 2x 16 GB ECC 模块(不是来自 Synology);
  • 我需要大约 22 TB 来将之前的糟糕解决方案增加三倍,因此我选择了 4x 8TB HDD(不是来自 Synology);
  • 最后,我安装了 2x 1 TB M.2 NVMe(不是来自 Synology)。
  • 1 Gigabit/s 的速度对我们来说已经足够了,所以我不需要购买 10 Gigabit 的扩展;
  • (为了完整起见,我与 ISP 建立了对称连接,下行速度为 100 Mbit/s,上行速度也为 100 Mbit/s,并且路由器和主交换机都不是来自 Synology)。

至于设置,仅说明最重要的设置:

  • 从我的主要 Linux 机器通过公共身份验证进行 SSH 访问;
  • 通过 NFSv4.1 与上述 Linux 机器建立可靠、稳定的连接;
  • 以前的方案只有2个4TB的RAID0,这次想了半天还是决定组了RAID5;
  • 我很清楚我应该选择 RAID6,但我无法达到所需的容量,它比 RAID0 好一点,对吧..;
  • 至于文件系统,我最终选择了 BTRFS 来尝试一下,它具有很好的功能..;
  • 我已将这两个快速 M.2 NVMe 驱动器设置为卷的缓存,在 RAID1 中作为读写缓存。

我之前决定使用 RAID0 中的 M.2 作为非常快速的存储,现在我们开始吧:

  • 我知道如何非正式地做到这一点,但我抵制住了,并首先尝试了缓存;
  • 它实际上比我想象的更有帮助;
  • 此 NAS 的用例非常广泛,从主要在本地网络内与其他人共享简单的文档到通过大量(合法)torrent使用来饱和我的上传链接;

结论:由于大量使用 torrent,如果我没记错的话,我相信使用那些 1 TB NVMe 是一个合乎逻辑的选择,但我倾向于验证我所不熟悉的东西。

至于我的问题的表述:

对于我们的 Synology NAS,使用 NVMe 驱动器作为缓存比作为存储更有意义吗(我知道,对于非 Synology 驱动器,这是非官方的)?感谢您阅读整个故事!我希望看到一些基于事实的答案。无论如何,感谢您的时间。

缓存命中率一般在95%左右,图片为:

缓存命中

cache
  • 1 个回答
  • 159 Views
Martin Hope
Tobia
Asked: 2024-05-15 04:24:35 +0800 CST

缓存对于备份 NAS 存储有多重要?

  • 5

我正在开发一个新的 nas 来存储一些虚拟机的 veeam 备份。

我将使用一些磁盘,我的疑问是关于可选的 SSD 缓存磁盘。

我想知道缓存层是否重要,通常我知道几个缓存磁盘不是一个坏主意,但在这种情况下我想知道是否推荐它或不是很有用。

据我所知,缓存用于吸收少量小操作或同一扇区中的重复操作。在虚拟机备份场景中,我预计大量写入操作和缓存层将很快被填满并变得几乎无用。

我是对还是错?

cache
  • 1 个回答
  • 33 Views
Martin Hope
Morteza
Asked: 2023-05-29 23:52:46 +0800 CST

这段清漆代码有什么作用?

  • 5

我在清漆配置中有这段代码,但不确定它的作用!此配置是否会缓存我的客户端请求?有什么问题吗?

sub vcl_backend_response {
    if (beresp.status != 200) {
        return (pass);
    }
    set beresp.http.X-Backend = beresp.backend.name;


    unset beresp.http.cookie;
    unset beresp.http.Set-Cookie;

    if (bereq.http.x-render-type == "test" && beresp.http.Content-Type ~ "text/html") {
        set beresp.http.Cache-Control = "no-store";
    }

    set beresp.http.Cache-Control = "no-store";
    if (bereq.http.x-render-type == "test" && beresp.http.Content-Type ~ "text/html") {
        return (pass);
    }

    return (deliver);
}
cache
  • 1 个回答
  • 75 Views
Martin Hope
Richard Rosner
Asked: 2022-03-16 12:57:33 +0800 CST

带有 FS-Cache 的 NFS - 已设置,但仍表示已禁用

  • 0

我在这里遇到了和这个问题差不多的问题,但是这个问题似乎已经解决了,因为 cachefilesd 尚未启用。我启用了它(在 /etc/default/cachefilesd 中删除了 RUN=yes 之前的注释)并重新启动了服务,但我仍然得到

root@pc01:~# cat /proc/fs/nfsfs/volumes
NV SERVER   PORT DEV          FSID                              FSC
v4 86826879  801 0:46         0:0                               no

其他帖子中提到的其他输出是:

root@pc01:~# mount
[snip]
/fscache.img on /var/cache/fscache type ext4 (rw,relatime)
server:/shares on /shares type nfs4 (rw,nosuid,nodev,noexec,noatime,vers=4.2,rsize=1048576,wsize=131072,namlen=255,hard,proto=tcp,timeo=50,retrans=2,sec=sys,clientaddr=xxx,fsc,local_lock=none,addr=xxx)
server:/home on /home type nfs4 (rw,nosuid,nodev,noexec,noatime,vers=4.2,rsize=1048576,wsize=131072,namlen=255,hard,proto=tcp,timeo=50,retrans=2,sec=sys,clientaddr=xxx,fsc,local_lock=none,addr=xxx)
[snip]

是的,我已将 fscache 放入一个 ext4 格式的图像文件中,大约 10 GB 大,因为我不想创建单独的分区并且 Btrfs 不支持 user_xattr 就我所知。

root@pc01:~# lsmod | grep cachefiles
cachefiles             86016  1
fscache                389120  2 cachefiles,nfs
root@pc01:~# uname -r
5.16.11-76051611-generic
root@pc01:~# grep CONFIG_NFS_FSCACHE /boot/config-5.16.11-76051611-generic 
CONFIG_NFS_FSCACHE=y
root@pc01:~# lsb_release -a
No LSB modules are available.
Distributor ID: Pop
Description:    Pop!_OS 21.10
Release:    21.10
Codename:   impish
root@pc01:~# dmesg | grep cache
[    0.019397] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.019576] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.043975] random: get_random_u64 called from kmem_cache_open+0x2b/0x360 with crng_init=1
[    0.082514] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.082543] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.256293] PCI: pci_cache_line_size set to 64 bytes
[    0.262202] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[   45.997860] FS-Cache: Cache "mycache" added (type cachefiles)
[   45.997863] CacheFiles: File cache on loop0 registered
root@pc01:~# ps aux | grep cachefilesd
root        1147  0.0  0.0   2876  1172 ?        SNs  14:29   0:00 /sbin/cachefilesd
root        9650  0.0  0.0  21912  2416 pts/0    S<+  14:45   0:00 grep --color=auto cachefilesd
nfs cache
  • 2 个回答
  • 129 Views
Martin Hope
freetimetime
Asked: 2022-02-25 19:47:55 +0800 CST

在更改 Route53 DNS 记录值之前是否需要设置不同的 ttl?

  • 1

第一次使用 ttl 1 天的负载均衡器源 DNS 名称创建 Route53 DNS 记录。

几天后,我们想将该值更改为另一个负载均衡器源 DNS 名称。我们是否需要先将目标 DNS 记录的 ttl 设置为较短的时间,例如 1 小时?然后在 1 小时后更改 DNS 值。它是否可以完美地刷新其 DNS 缓存并更新到新记录?

domain-name-system cache resolv.conf ttl amazon-route53
  • 1 个回答
  • 86 Views
Martin Hope
O'Niel
Asked: 2022-02-01 03:04:13 +0800 CST

将位置块添加到缓存文件会使这些文件返回 404

  • 0

我想使用 Nginx 缓存一些静态文件。但我不知何故无法让它工作。

这是我的nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    #multi_accept on;
}


http {

    #GZIP
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types application/javascript application/json application/ld+json application/xml font/eot font/otf font/ttf text/css text/javascript text/plain text/xml;

    # SERVERS
    server {
            listen      80;

        server_name example.com;
        if ($http_host ~* ^www\.(.*)$ )
        {
            return 301 https://$1$request_uri;
        }

        return 301 https://$http_host$request_uri;
    }
    server {
        listen 443 ssl;

        if ($http_host ~* ^www\.(.*)$ )
        {
            return 301 $scheme://$1$request_uri;
        }


        #SSL
        ssl_certificate /root/.acme.sh/example.com/fullchain.cer;
        ssl_certificate_key /root/.acme.sh/example.com/example.com.key;

        server_name example.com;

        # Pass all traffic to my webapplication
        location / {
            proxy_set_header Host $host;
            proxy_pass http://localhost:8080;
        }

        #Browser caching
        location ~* \.(js|css)$ {
            expires 180d;
            add_header Pragma "public";
            add_header Cache-Control "public";
        }
        location ~* \.(jpg|jpeg|png|webp|woff|woff2|ttf)$ {
            expires 365d;
            add_header Pragma "public";
            add_header Cache-Control "public";
        }

    }
}

问题出在“浏览器缓存”部分。启用此代码块时,我的网站会加载,但所有 css 文件、javascript 文件和图像都返回 404。就像这些文件忽略了我的location /.

我能够通过复制/粘贴来解决这个问题

proxy_set_header Host $host;
proxy_pass http://localhost:8080;

在我所有的location块中,但这并不是很优雅,实际上让我的网站感觉慢了很多......

我还尝试将location浏览器缓存的两个块移动到块中location \,以便后者充当“父级”。但这并没有机会图像等的行为返回 404。

如何在 Nginx 中配置静态文件的缓存?

编辑: 我将以下内容添加到我的http-block 中:

  map $uri $cache_control {
                ~/Website/assets/media/images    "public, no-transform";
        }
        map $uri $expire {
            ~/Website/assets/media/images   365d;
        }

在我的server-block 中添加了以下内容:

 expires $expire;
                add_header Cache-Control $cache_control;

没有任何东西被缓存。

cache nginx
  • 2 个回答
  • 234 Views
Martin Hope
BitShredder
Asked: 2022-01-11 08:13:16 +0800 CST

NGINX:我可以将 proxy_no_cache 指令与上游响应正文一起用于条件缓存吗?

  • 0

我们将 Ngnix 用作 3rd 方服务前的缓存代理,并具有以下指令以确保缓存状态代码为 200 的上游响应...

proxy_cache_valid 200 364d

问题是当没有找到给定搜索的结果时,第 3 方服务返回 200。这由响应正文中的 JSON 参数指示docs: []。

是否可以proxy_no_cache在上游正文内容上使用带有正则表达式的指令或任何其他指令,这样我们就不会缓存这些“空”响应?也不存在指示“空”响应的标头。

TIA

cache nginx
  • 1 个回答
  • 152 Views
Martin Hope
Albert T
Asked: 2021-12-30 12:13:29 +0800 CST

lvmcache/dm-cache 写回缓存全性能

  • 2

我在 HDD 前面有一个 SSD 回写缓存,通过 lvmcache 设置(所以是 dm-cache)。当缓存 LV 未满时( < 100.00%Data%中的列lvs),写入会转到缓存设备(通过 监控dstat)。但是,当缓存 LV 已满时 (Data%= 100.00%),写入直接进入 HDD,本质上成为直写缓存。即使经过一段时间,块也不会从 SSD 缓存中被逐出,并且性能下降。当我尝试从缓存的 LV 中读取最近读取的数据时,读取来自 SSD,因此我假设整个 SSD 现在已成为读取缓存。这是 dm-cache 的写缓存的预期行为,即使在写回模式下?没有预留空间写吗?这似乎是一个非常糟糕的设计,因为在缓存成为直写缓存之前,用户只能写入一个缓存 LV 的数据。

我的理解是 dm-cache 使用mq eviction algorithm,但这仅适用于读取缓存,因此与我观察到的写入缓存问题无关。

有没有办法为写缓存保留空间,或者同时使用 dm-writecache (我理解它不会做任何读缓存)和 dm-cache ?

linux lvm cache ssd dm-cache
  • 1 个回答
  • 1172 Views
Martin Hope
puk
Asked: 2021-11-17 13:14:48 +0800 CST

路由器强制浏览器使用较旧的、可能是缓存的 web 文件

  • 0

我们是故障排除网站,我们在其中部署了新版本,但我们的计算机浏览器仍会拉取旧页面。当我们与路由器(WiFi)断开连接并连接到热点(手机/数据)时,浏览器会正确拉取新页面。如果我们切换回路由器(WiFi),问题又回来了。我们尝试了故障排除

  • 我们已确认新文件已成功部署
  • 我们已经确认正在下载旧文件(通过查看 Inspect > Sources)
  • 在检查>网络中禁用缓存
  • 清除所有浏览器缓存
  • 清除 Cloudflare 上的缓存
  • 将 Cloudflare 缓存设置为开发人员模式
  • 使用不同的浏览器(Chrome 和 Brave)
  • 使用不同的计算机(都连接到同一个 WiFi)

我们在不同地点(不同国家)的电脑上进行了简单的测试。一项测试只是加载了旧页面。第二个测试加载了新页面。我们不能从这个测试中得出任何结论。

网页仅为静态 HTML 和 JS 文件。

任何人都知道这种奇怪行为的可能来源是什么?

router cache cloudflare
  • 1 个回答
  • 41 Views
Martin Hope
Nikolai Frolov
Asked: 2021-09-28 07:44:16 +0800 CST

为什么重新加载我的页面后浏览器会再次获取图像?

  • 0

我正在开发一个网络应用程序,我希望所有图像(价值几百 MB - 20 000 - 50 000 个缩略图)都下载一次并且永远不会再次下载,因为它们并没有真正改变。此外,这些图像是从 youtube 服务器下载的,我不想不必要地锤击他们的服务器。

但问题是,当我重新加载页面时,请求又开始下雨了,而不是加载缓存的图像。当我导航到我的页面并重新加载它时会发生这种情况,但是当我打开另一个页面并按回时,图像是从缓存中加载的。当我使用 JavaScript 动态添加新内容时,图像也会从缓存中加载。

那么,我错过了什么?我在 Windows 10 上使用 XAMPP 服务器进行测试。

PS 我使用地址栏附近的重新加载按钮重新加载,而不是使用 Ctrl+R 或其他清除缓存的组合键。

PPS 在有人对此发表评论之前澄清一下,我不会一次下载所有数千张图片

cache xampp
  • 1 个回答
  • 48 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve