URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88188
[ Назад ]

Исходное сообщение
"Оптимизация дисков FreeBSD"

Отправлено d_pilot , 17-Фев-10 21:37 
Добрый день.
Имеется сервер с 2 sas дисками в raid 1.
Установленная ОС - FreeBSD 7.2.
И имеется проблема с производительностью дисков.
Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко тормозит. как можно увеличить производительность записи на диск.
Чуть не забыл. На диск постоянно пишется много небольших данных.

Содержание

Сообщения в этом обсуждении
"Оптимизация дисков FreeBSD"
Отправлено d_pilot , 18-Фев-10 06:57 
>Добрый день.
>Имеется сервер с 2 sas дисками в raid 1.
>Установленная ОС - FreeBSD 7.2.
>И имеется проблема с производительностью дисков.
>Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается
>около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко
>тормозит. как можно увеличить производительность записи на диск.
>Чуть не забыл. На диск постоянно пишется много небольших данных.

Ещё вопрос. Как оценить производительность при помощи iostat?


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 18-Фев-10 09:58 
>>Добрый день.
>>Имеется сервер с 2 sas дисками в raid 1.
>>Установленная ОС - FreeBSD 7.2.
>>И имеется проблема с производительностью дисков.
>>Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается
>>около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко
>>тормозит. как можно увеличить производительность записи на диск.

Посмотреть, что грузит, и отключить/отказаться от использования/закэшировать в ОЗУ, и т д

>>Чуть не забыл. На диск постоянно пишется много небольших данных.

если _пишется_, то зеркало для повышения производительности не подходит (оно повышает скорость seek'ов только на чтении, хотя и очень существенно)

>Ещё вопрос. Как оценить производительность при помощи iostat?

А что именно не понятно? Кстати, BSD top умеет сортировать процессы по дисковой активности(клавиша m), и ps тоже (man ps)


В платформу можно вставить четыре диска? Если да, 1+0 через geom (gmirror и gstripe) должны Вас спасти.


У Вас ведь не фейк-рейд через полукитайский недоконтроллер, а gmirror или нормальный аппаратный с батарейкой и включенным кэшем контроллера на запись?


"Оптимизация дисков FreeBSD"
Отправлено d_pilot , 18-Фев-10 11:28 
>[оверквотинг удален]
>А что именно не понятно? Кстати, BSD top умеет сортировать процессы по
>дисковой активности(клавиша m), и ps тоже (man ps)
>
>
>В платформу можно вставить четыре диска? Если да, 1+0 через geom (gmirror
>и gstripe) должны Вас спасти.
>
>
>У Вас ведь не фейк-рейд через полукитайский недоконтроллер, а gmirror или нормальный
>аппаратный с батарейкой и включенным кэшем контроллера на запись?

Что грузит систему известно. Отказаться от приложения не можем. Увеличить количество шпинделей для увеличения записи - тоже не возможно(тупо нет дырок). RAID аппаратный. Выбрано решение 1 рейда из соображений отказоустойчивости.
Просто если писать на диск большими блоками, то скорость записи на много больше(больше чем в 20 раз). Собственно из-за этого и возник вопрос. Как сделать так, чтобы то, что пишется маленькими блоками кешировалось, а кеш аккуратно ложился на диски. И как увеличить кеш. Благо оперативы достаточно много.


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 18-Фев-10 11:30 
> RAID аппаратный.

Какой именно контроллер? Батарейка + кэш есть?


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 18-Фев-10 12:25 
>Просто если писать на диск большими блоками, то скорость записи на много
>больше(больше чем в 20 раз).

так часто и бывает, так как случайное чтение/запись для диска всегда более времяемкая операция, чем линейное чтение-запись, впрочем дешевые аппаратные контроллеры часто и линейной скоростью не блещут...

Кстати, geom в FreeBSD часто работает значительно быстрее дешевых (до $1000) аппаратных raid, а риска неконсистентности данных нет (так как в случае если метаданные отличаются, gmirror засинкает один диск с другого, после, например, сброса по питанию во время интенсивной записи)

Если приложение не работает 7/24/365, не хотите попробовать потестить, не лучше ли станет ситуация с gmirror?


"Оптимизация дисков FreeBSD"
Отправлено DeadLoco , 18-Фев-10 19:59 
>Как сделать так, чтобы то, что пишется маленькими блоками кешировалось, а
>кеш аккуратно ложился на диски.

По всей видимости, писать в именованый пайп, который с другой стороны читать, и кешируя писать на диск.


"Оптимизация дисков FreeBSD"
Отправлено DeadLoco , 15-Мрт-10 13:36 
>>Как сделать так, чтобы то, что пишется маленькими блоками кешировалось, а
>>кеш аккуратно ложился на диски.
>
>По всей видимости, писать в именованый пайп, который с другой стороны читать,
>и кешируя писать на диск.

Что-то я совсем торможу...

Вам нужно создать виртуальный диск md в памяти - и на него писать. А с него уже копировать на хдд.


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 18-Фев-10 10:01 
>Добрый день.
>Имеется сервер с 2 sas дисками в raid 1.
>Установленная ОС - FreeBSD 7.2.
>И имеется проблема с производительностью дисков.
>Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается
>около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко
>тормозит. как можно увеличить производительность записи на диск.
>Чуть не забыл. На диск постоянно пишется много небольших данных.

Кстати, народ все чаще начинает использовать SSD. Если все совсем плохо, может быть это тоже решит проблему?


"Оптимизация дисков FreeBSD"
Отправлено d_pilot , 18-Фев-10 11:29 
>[оверквотинг удален]
>>Имеется сервер с 2 sas дисками в raid 1.
>>Установленная ОС - FreeBSD 7.2.
>>И имеется проблема с производительностью дисков.
>>Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается
>>около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко
>>тормозит. как можно увеличить производительность записи на диск.
>>Чуть не забыл. На диск постоянно пишется много небольших данных.
>
>Кстати, народ все чаще начинает использовать SSD. Если все совсем плохо, может
>быть это тоже решит проблему?

SSD слишком дорого и не надёжно.


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 18-Фев-10 11:32 
>SSD слишком дорого и не надёжно.

Дорого - да, ненадежно? Так зеркало же :) (хотя еще хотя бы один диск конечно же должен быть в ZIP)

Кроме того, любое кэширование в ОЗУ _записи_ это еще хуже



"Оптимизация дисков FreeBSD"
Отправлено Лешка Лефортовский , 18-Июн-10 18:50 
Галина, у Вас второй диск накроется сразу после первого, как минимум в туже ночь. Именно по тому, что это зеркало ;]

>Дорого - да, ненадежно? Так зеркало же :) (хотя еще хотя бы
>один диск конечно же должен быть в ZIP)


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 20-Июн-10 12:11 
>Галина, у Вас второй диск накроется сразу после первого, как минимум в
>туже ночь. Именно по тому, что это зеркало ;]

У меня другой опыт: куча серверов с умершими дисками из одной партии в одном рейд-массиве:
были, конечно, и синхронные "обсыпы", но и много раз оставшиеся диски работали в массиве не один год.

SSD среди них еще не было, но не думаю, что будет существенная разница.


"Оптимизация дисков FreeBSD"
Отправлено d_pilot , 20-Июн-10 18:08 
>>Галина, у Вас второй диск накроется сразу после первого, как минимум в
>>туже ночь. Именно по тому, что это зеркало ;]
>
>У меня другой опыт: куча серверов с умершими дисками из одной партии
>в одном рейд-массиве:
>были, конечно, и синхронные "обсыпы", но и много раз оставшиеся диски работали
>в массиве не один год.
>
>SSD среди них еще не было, но не думаю, что будет существенная
>разница.

Разница существенна, так как основное отличие SSD от традиционных дисков - ограниченное число циклов записи у SSD, притом как у шпиндельных дисков такого нет. При RAID1 каждая запись будет производится на оба диска сразу. Соответственно и счётчик циклов записи будет крутиться на обоих дисках одновременно. И придут к нулю они также примерно одновременно. Соответственно и вылетят примерно одновременно. И если вы успели вовремя поменять диск, значит у вас просто превосходная карма и вам дико повезло.


"Оптимизация дисков FreeBSD"
Отправлено sHaggY_caT , 21-Июн-10 09:34 

>Разница существенна, так как основное отличие SSD от традиционных дисков - ограниченное
>число циклов записи у SSD, притом как у шпиндельных дисков такого
>нет. При RAID1 каждая запись будет производится на оба диска сразу.
>Соответственно и счётчик циклов записи будет крутиться на обоих дисках одновременно.
>И придут к нулю они также примерно одновременно. Соответственно и вылетят
>примерно одновременно. И если вы успели вовремя поменять диск, значит у
>вас просто превосходная карма и вам дико повезло.

Тогда решение просто просится :) Один из дисков ставить б/у :)


"Оптимизация дисков FreeBSD"
Отправлено anonymous , 18-Фев-10 22:21 
>Добрый день.
>Имеется сервер с 2 sas дисками в raid 1.
>Установленная ОС - FreeBSD 7.2.
>И имеется проблема с производительностью дисков.
>Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается
>около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко
>тормозит. как можно увеличить производительность записи на диск.
>Чуть не забыл. На диск постоянно пишется много небольших данных.

может быть, ваше приложение делает fsync() после каждой записи?


"Оптимизация дисков FreeBSD"
Отправлено Роман , 12-Мрт-10 19:15 
>>Добрый день.
>>Имеется сервер с 2 sas дисками в raid 1.
>>Установленная ОС - FreeBSD 7.2.
>>И имеется проблема с производительностью дисков.
>>Согласно выводу gstat загрузка дисков(%bisy) постоянно больше 100 процентов. При этом записывается
>>около 1MB/s и периодически очередь(L(q)) возрастает . При этом система жутко
>>тормозит. как можно увеличить производительность записи на диск.
>>Чуть не забыл. На диск постоянно пишется много небольших данных.
>
>может быть, ваше приложение делает fsync() после каждой записи?

А может сюда копнуть ?

Переменная sysctl vfs.write_behind по умолчанию установлена в 1 (включено). Она указывает системе выполнять запись на носитель по кластерам, что обычно делается для больших файлов. Идея в том, чтобы избежать заполнения кэша неполными буферами, когда это не увеличивает производительность. Однако, это может заблокировать процессы и в некоторых случаях вам может понадобиться отключить этот параметр.