Linux: варианты монтирования для повышения производительности на медленных жестких дисках?

2

Я столкнулся с проблемой производительности двух жестких дисков. Один быстрый, но монтируется удаленно через NFS, другой локальный (ext4), но медленный.

Нет, замена двух дисков не вариант, потому что это может привести к тому, что установка в другой системе пострадает от этого.

У меня субъективное впечатление, что большая часть потери производительности происходит во время записи кэшированных данных (в обоих случаях: локальных и удаленных).
Другое эмпирическое доказательство состоит в том, что это syncзанимает всегда меньше секунды, даже после большого количества написания. Опять же, для меня это означает: кэш записи слишком мал, или используется слишком мало, или похож.

Вопрос в том, могу ли я улучшить производительность с некоторыми вариантами монтирования?

Я нашел в справочной странице mount какую-то опцию, которая может быть связана с производительностью: max_batch_time, delalloc. Но я не могу догадаться, что по умолчанию, что они делают, ...

Дополнительный вопрос: есть ли шанс повысить производительность, переформатировав раздел ext4 с другими параметрами?

java.is.for.desktop
источник
У вас есть диск ext4, отформатированный с поддержкой экстентов?
Broam
Я отформатировал его с параметрами по умолчанию Opensuse от Yast. Я уверен, что он включен.
java.is.for.desktop
Как медленно, медленно? Если вы не измеряете, вы не можете знать, находитесь ли вы уже очень близко к самой высокой производительности hw (если это так, ваш единственный вариант - купить новый hw - иначе вы можете потратить время на оптимизацию настроек)
Davide

Ответы:

5

Для чего вам нужен диск? Производительность часто варьируется в зависимости от типа файловой системы и выполняемой задачи.

Установка noatimeв вашем разделе или переход на reiserfs может немного повысить производительность, но вы можете создать проблемы с NFS для себя. Если локальный диск ext4 медленнее, чем монтирование NFS, я думаю, что происходит что-то еще. Я думаю, вам нужно посмотреть, что еще происходит в вашей системе, что мешает вашему диску справиться с вашими задачами записи. Подумайте о том, что делает все это письмо. Скажем, что-то колотится / TMP. Перемещение / tmp на свой собственный раздел поможет с остальными локальными разделами.

Возможно, вы страдаете от необходимости дефрагментировать ваш диск. Хотя файловые системы linux не страдают от фрагментации так сильно, как NTFS, они со временем фрагментируются. Поскольку дефрагментация ext4 не слишком проста (требуется режим ядра), вы можете просто переформатировать ее, поскольку вы, похоже, хотите попробовать новый тип файловой системы.

Смонтируйте настройки, чтобы попробовать:

  1. noatime & nodiratime
    • нет acl
    • data = writeback , nobh
    • delalloc - который уже должен быть по умолчанию - не нужно устанавливать.
    • commit = N По умолчанию 5 секунд, хорошо для безопасности, «плохо» для производительности. Установка более высоких значений может привести к потере «N» секунд работы в случае сбоя вашей машины. Журналирование до сих пор сохраняется, поэтому диск не подвержен влиянию.
    • inode_readahead = п
    • max_batch_time = N
DaveParillo
источник
«noatime» также имеет тот же эффект, что и «nodiratime», нет необходимости использовать оба параметра. lwn.net/Articles/245002
1

Я использую noatime, чтобы уменьшить общее время доступа для записи.

Компьютерщик
источник
Да, я уже использую noatime и nodiratime и data = writeback.
java.is.for.desktop