在一台受磁盘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不是完全满了,所以更大的一个也帮不上忙,对吧?
我有一个合理的缓存率,98.5%的ARC和73.7%的L2。
此外,慢磁盘的使用率仍在大约100%左右,因此如果我能够从磁盘中删除工作,我的应用程序将运行得更快。
有没有办法知道我下一步该尝试什么?有什么能帮上忙的?
发布于 2019-05-05 00:11:04
一个更大的L2ARC很可能与你现在的容量大致相同(如果我读得对的话,这个容量很小-只有12.5GB?)
L2ARC完全有可能是因为L2ARC和ARC的内容是你真正的“热点”数据集,而且你没有太多没有缓存的重复读取。
与通常的L2ARC讨论一样,您可能会得到更好的服务,只需将更多内存添加到服务器中,以便与ARC一起使用。你有多少内存?有多少内存可以用作ARC?(请参见/etc/modprobe.d/zfs.conf;它默认为系统中物理RAM的50%。)
https://serverfault.com/questions/953156
复制相似问题