Жесткий диск HDD и FREEBSD

В этой записи я хотел бы по конкретней остановиться на теме как FreeBSD работает с жестким диском (HDD) и на что что стоит обратить внимание в этом вопросе.

Просто на домашнем компьютере на скорость системы ввода вывода (HDD) не обращаешь существенного внимания, но FREEBSD не только домашняя система ( или вообще не домашняя ) поэтому на производительном сервере к примеру (WEB или почта) часто в скорости упираешься именно в скорость винчестеров. Итак начнем с обзора распространенных интерфейсов с которыми работает FreeBSD – Если машинка на которой вы планируете гонять freeBSD достаточно новая (последние несколько лет) но это не специализированный сервер – то скорее всего там интерфейс SATA – это бюджетный вариант пришедший на смену IDE, если нет специального контроллера (внешнего не интегрированного в чипсет матери и не дешевого) то я не советую пробовать реализовать аппаратный RAID таким способом, для повышение отказоустойчивости или скорости работы. Отказоустойчивость окажется под сомнением по причине проблем такой реализации RAID, а дополнительной скорости вы не получите потому как все затраты на к примеру RAID 0 уровне ляжут на центральный процессор. Главный плюс интерфейса SATA – это его стоимость – быстродействия можно достигнуть покупкой нескольких винтов и разнесением их на разные шины, а данные на разные диски. А безопасность можно реализовать и программным RAID FreeBSD для этого более чем подходит.

Следующий интерфейс это SCSI и вариации на его тему, всем хороший интерфейс и планировщик для него во FreeBSD написан более быстрый и контроллер к нему чаше всего идет внешний с собственным буфером и процессором для вычислений процессов связанных с HDD- Но цена не способствует его покупке, но если для вас дисковая система в вашем сервере на первом месте – Покупки SCSI вам не избежать. Последний интерфейс это IDE – обязательно будет если машинка не новая, это отец SATA если так можно сказать, стабилен безошибочен и медленный. В целом аналог SATA только меньше скорость и объем. Не смотря на то что я уже рассматривал разбивку FREEBSD дисков в системе, тут мы затронем лишь слегка.
Итак на что стоит обратить внимание при разбивке жесткого диска во FreeBSD 8.
Обязательно создайте swap раздел и не просто а на отдельном интерфейсе чтобы увеличить скорость его работы. Также сделайте отдельными разделами /var/ или /var/log/ и /tmp. Также необходимы отдельные разделы для /usr/ ну и собственно корневого раздела /.
Просмотреть как статистику занятости swap памяти можно командами ниже

ifreebsd:/>swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 1024000 7280 1016720 1%
ifreebsd:/>pstat -s
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 1024000 7280 1016720 1%
ifreebsd:/>

Или если необходимо посмотреть более детальную статистику используйте следующую команду.

ifreebsd:/>vmstat
procs memory page disk faults cpu
r b w avm fre flt re pi po fr sr ad0 in sy cs us sy id
1 0 0 108M 12M 4 0 0 0 3 1 0 3 25 4032 0 0 100

Расшифровка этой информации :
proc – это информация о процессах в системе, memory – это количество доступной этим процессам памяти ОЗУ, page – это количество страниц подкачки, disk – это число в секунду операций с жестким диском, faults – это иллюстрация количества прерываний в секунду, cpu количество занятого в % процессорного времени.
r – это число процессов которые готовы к запуску, b - заблокированные процессы ожидающие изменений в системе in/out, w – количество процессов в swap.
avm и free - объем памяти всего и свободно. flt – количество ошибок по отношению к страницам памяти, re – страницы памяти которые были возвращены, pi - страницы которые были подкачаны, po – страницы выгруженные из памяти, fr – свободные страницы, sr – страницы которые с которыми работал алгоритм time. in – количество прерываний которые произошли, sy – количество системных вызовов, сs – количество переключений. us – сколько времени уже прошло, sy – время потраченное на обслуживание ядра, id – сколько свободно.
Чтобы посмотреть срез данных за 1 секунду ( что-то типа картины в реальном времени )

ifreebsd:/>vmstat 1 10
procs memory page disk faults cpu
r b w avm fre flt re pi po fr sr ad0 in sy cs us sy id
2 0 0 108M 12M 4 0 0 0 3 1 0 3 25 4032 0 0 100
0 0 0 108M 12M 2 0 0 0 0 0 0 4 138 4057 0 1 99
0 0 0 108M 12M 0 0 0 0 0 0 0 4 123 4052 0 0 100
0 0 0 108M 12M 0 0 0 0 0 0 0 4 123 4051 0 1 99
0 0 0 108M 12M 0 0 0 0 0 0 0 4 123 4051 0 0 100
0 0 0 108M 12M 0 0 0 0 0 0 0 4 123 4050 0 1 99
0 0 0 108M 12M 0 0 0 0 0 0 0 4 137 4053 0 0 100
0 0 0 108M 12M 0 0 0 0 0 0 0 24 228 4110 1 2 97

Количество повторений указано 10.
Данные по жесткому диску (HDD) in/out система ввода вывода можно посмотреть следующим способом.

ifreebsd:/>iostat
tty ad0 cpu
tin tout KB/t tps MB/s us ni sy in id
0 1 6.11 1 0.00 0 0 0 0 100

Вывод этой информации чем-то похож на vmstat. Рассмотрим ее подробней -
tty – сколько символов было введено и выведено в секундах, tin – количество с терминала, tout - с vtty.
ad0 - информация о in/out на нашем жестком диске (HDD) – самое интересное, KB/t – сколько в КБ выведенно информации за 1 пересылку, tps - в сек. сколько прошло данных, MB/s - в сек. данных в Мб.

cpu – характеристики центрального процессора (идентичны с описанием vmstat )

Пока все. Возможно дополню эту информацию – со временем.
Остались вопросы – пишите :)
Удачи.

http://ifreebsd.org/freebsd/жесткий-диск-hdd-и-freebsd/

Обновлено: 12.03.2015