诊断 ZFS 缓存需求

诊断 ZFS 缓存需求

我的机器上有一台受磁盘 IO 限制的特殊负载,主要是读取。

大部分 IO 发生在使用 ZFS 格式化的慢速网络连接磁盘上。

使用 iostat 我可以清楚地看到这些磁盘的使用率约为 100%,因此,至少我知道这是瓶颈。

此外,我发现我主要在那些磁盘上进行读取操作。

慢盘大概有3T左右。

我很乐观,安装了 L2ARC 缓存,使用后zpool iostat我看到了类似这样的内容:

pool                           alloc   free   read  write   read  write
-----------------------------  -----  -----  -----  -----  -----  -----
  virtio-993974c9-d6be-412d-9  3,02T  1,85T     13      0  95,9K      0
cache                              -      -      -      -      -      -
  /root/cache.l2arc            12,5G  2,47G     15      2   152K   116K
-----------------------------  -----  -----  -----  -----  -----  -----
sam. févr.  9 19:48:58 CET 2019
                                 capacity     operations     bandwidth 
pool                           alloc   free   read  write   read  write
-----------------------------  -----  -----  -----  -----  -----  -----
  virtio-993974c9-d6be-412d-9  3,02T  1,85T     18      0   104K      0
cache                              -      -      -      -      -      -
  /root/cache.l2arc            12,5G  2,47G     19      0   176K      0
-----------------------------  -----  -----  -----  -----  -----  -----
sam. févr.  9 19:48:59 CET 2019
                                 capacity     operations     bandwidth 
pool                           alloc   free   read  write   read  write
-----------------------------  -----  -----  -----  -----  -----  -----
  virtio-993974c9-d6be-412d-9  3,02T  1,85T     23    308   152K  7,42M
cache                              -      -      -      -      -      -
  /root/cache.l2arc            12,5G  2,47G     31      3   276K   204K
-----------------------------  -----  -----  -----  -----  -----  -----

所以 L2 有帮助,但帮助不大。而且我发现 L2 还没有完全装满,因此更大的 L2 不会有帮助,对吗?

我有一个合理的缓存率,ARC 为 98.5%,L2 为 73.7%。

此外,慢速磁盘的使用率仍然大约为 100%,因此,如果我可以从磁盘中删除工作,我的应用程序将运行得更快。

有什么方法可以知道我下一步该尝试什么吗?有什么可以帮忙的吗?

答案1

更大的 L2ARC 可能会填充与您现在的容量大致相同的容量(如果我没看错的话,这个容量非常小 - 只有 12.5GB?)

L2ARC 会从 ARC 驱逐中填充,而且完全有可能发生的事情只是 L2ARC 和 ARC 的内容是你真正的“热”数据集的大部分,而你没有大量重复读取尚未进入缓存。

与 L2ARC 讨论一样,您可能更愿意向服务器添加更多 RAM 以用于 ARC。您有多少 RAM?其中有多少 RAM 可用于 ARC?(请参阅 /etc/modprobe.d/zfs.conf;它默认为系统中物理 RAM 的 50%。)

相关内容