这本书“HBase:权威指南”指出
不build议在一台服务器上安装不同的文件系统。 这可能会对性能产生不利影响,因为内核可能必须拆分缓冲区caching以支持不同的文件系统。 据报道,对于某些操作系统来说,这可能会造成破坏性的性能影响。
这是否真的适用于Linux? 我从来没有见过缓冲区caching大于300兆字节,大多数现代服务器都有千兆字节的内存,所以在不同文件系统之间分配缓冲区caching不应该成为问题。 我错过了别的吗?
分割缓冲区caching是有害的,但是它的效果是最小的。 我猜测它太小了,基本上不可能测量。
您必须记住,不同安装点之间的数据也是不可共享的。
虽然不同的文件系统使用不同的分配缓冲区,但并不像分配内存只是坐在那里看起来漂亮。 运行3个不同文件系统(XFS,ext4,btrfs)的系统的slabtop数据:
OBJS主动使用OBJ尺寸板坯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 (许多其他的对象)
正如您所看到的,任何真正可用的caching都具有超过90%的利用率。 因此,如果您并行使用多个文件系统,则成本大约相当于丢失系统内存的5%,如果计算机不是专用文件服务器,则花费更less。
我不认为有负面影响。 我经常在同一台服务器上将ext3 / ext4与XFS(甚至是ZFS)混合在一起。 考虑到我正在运行的硬件,我不会将我的性能描述为比预期的要less。
[root@Lancaster ~]# mount /dev/cciss/c0d0p2 on / type ext4 (rw) /dev/cciss/c0d0p7 on /tmp type ext4 (rw,nobarrier) /dev/cciss/c0d0p3 on /usr type ext4 (rw,nobarrier) /dev/cciss/c0d0p6 on /var type ext4 (rw,nobarrier) vol2/images on /images type zfs (rw,xattr) vol1/ppro on /ppro type zfs (rw,noatime,xattr) vol3/Lancaster_Test on /srv/Lancaster_Test type zfs (rw,noatime,xattr)
你是否担心特定的情况? 什么文件系统将会发挥作用? 你在什么分配?