“HBase:权威指南”一书指出
Installing different filesystems on a single server is not recommended.
This can have adverse effects on performance as the kernel may have to
split buffer caches to support the different filesystems. It has been reported that,for certain operating systems,this can have a devastating
performance impact.
这真的适用于Linux吗?我从未见过大于300 MB的缓冲区缓存,大多数现代服务器都有数GB的RAM,因此在不同的文件系统之间拆分缓冲区缓存应该不是问题.我错过了别的什么吗?
解决方法
拆分缓冲区缓存是有害的,但它的影响很小.我猜它太小了,基本上不可能测量.
您必须记住,不同挂载点之间的数据也是不可共享的.
虽然不同的文件系统使用不同的分配缓冲区,但它并不像分配内存只是坐在那里看起来漂亮.来自slabtop的数据,用于运行3个不同文件系统(XFS,ext4,btrfs)的系统:
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 42882 42460 99% 0.70K 1866 23 29856K shmem_inode_cache 14483 13872 95% 0.90K 855 17 13680K ext4_inode_cache 4096 4096 100% 0.02K 16 256 64K jbd2_revoke_table_s 2826 1136 40% 0.94K 167 17 2672K xfs_inode 1664 1664 100% 0.03K 13 128 52K jbd2_revoke_record_ 1333 886 66% 1.01K 43 31 1376K btrfs_inode_cache (many other objects)
如您所见,任何真正相当大的缓存的利用率都超过90%.因此,如果您并行使用多个文件系统,则成本约等于减少5%的系统内存,如果计算机不是专用文件服务器则更少.