12.2.8. Оптимизация Samba
12.2.8. Оптимизация Samba
Ваш Samba-сервер медленно работает, и вы уже устали от постоянных жалоб пользователей? Лучшим выходом из данной ситуации будет покупка нового винчестера. Лучше всего покупать SCSI-винчестер со скоростью 10000 оборотов в минуту. В крайнем случае подойдет IDE-диск, поддерживающий режим ATA133 и работающий со скоростью 7200 оборотов в минуту. При покупке такого винчестера обратите внимание на следующие факторы:
? ваша материнская плата должна поддерживать режим ATA133;
? у вас должен быть специальный кабель для подключения жесткого диска (если материнская плата поддерживает ATA100/133, такой кабель у вас будет);
? покупайте винчестер с большим объемом кэша: на рынке можно найти несколько моделей винчестеров, различающихся маркировкой, но в одном случае вы получаете 2 Мб кэша, а во втором — 640 Кб (или 1 Мб, но все равно меньше, чем в более дорогой модели).
Если же денег на покупку такого винчестера нет, попробуем оптимизировать наши настройки. Во-первых, установите значение yes для директивы wide links в файле конфигурации smb.conf — это должно повысить производительность сервера, если в общих каталогах имеются ссылки.
Во-вторых, в дистрибутивах на ядре 2.4 есть демон bdflush. Он занимается записью буферов, содержащих модифицированные данные файловой системы, на диск. Настройки по умолчанию не очень эффективны:
30 64 64 256 500 3000 60 0 0
Попробуем немного оптимизировать настройки bdflush. Для этого откройте файл /etc/sysctl.conf и добавьте в него следующую строку:
vm.bdflush = 80 500 64 64 15 6000 6000 0 0
Этим мы говорим демону, чтобы он записывал буферы на диск, когда буфер кэша файловой системы заполнен на 80 процентов.
После этого нужно перезапустить сервис network:
# service network restart
Если вам нельзя ни на секунду останавливать сервис network, вместо модификации файла /etc/sysctl.conf введите следующую команду:
# sysctl -w vm.bdflush="80 500 64 64 15 6000 6000 0 0"
Чтобы заставить ваш Samba-сервер работать быстрее, попробуем поэкспериментировать с кэшированием памяти: мы будем использовать минимум 60 процентов памяти для кэша.
sysctl -w vm.buffermem = "60 10 60"
Примечание
Последние два параметра (10 и 60) сейчас не используются. Значения по умолчанию — «2 10 60».
Данный текст является ознакомительным фрагментом.