Назад | Перейти на главную страницу

Влияние на производительность работы разных файловых систем на одном сервере Linux

Книга "HBase: полное руководство" утверждает, что

Не рекомендуется устанавливать разные файловые системы на один сервер. Это может отрицательно сказаться на производительности, поскольку ядру может потребоваться разделить кеш-буферы для поддержки различных файловых систем. Сообщается, что для некоторых операционных систем это может иметь разрушительное влияние на производительность.

Действительно ли это применимо к Linux? Я никогда не видел, чтобы буферный кеш превышал 300 Мбайт, а большинство современных серверов имеют гигабайты оперативной памяти, поэтому разделение буферного кеша между различными файловыми системами не должно быть проблемой. Я что-то еще упускаю?

Разделение буферного кеша вредно, но эффект от этого минимален. Я предполагаю, что он настолько мал, что его практически невозможно измерить.

Вы должны помнить эти данные между разными точки монтирования тоже не подлежит разглашению.

Хотя разные файловые системы используют разные буферы распределения, это не значит, что память выделяется только для того, чтобы сидеть и выглядеть красиво. Данные из 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% системной памяти или меньше, если компьютер не является выделенным файловым сервером.

Не думаю, что это будет негативно. Я часто использую ext3 / ext4 вместе с XFS (и даже ZFS) на одном сервере. Я бы не стал описывать свою производительность как нечто меньшее, чем ожидалось, с учетом оборудования, на котором я работаю.

[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)

Вас беспокоит конкретный сценарий? Какие файловые системы будут задействованы? В каком вы дистрибутиве?