Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Я ставил систему на один HDD и закомментировал, что желательно перенести на второй диск.
“
Начнем с того, почему именно так разбил HDD и в таком порядке, а не по ханбуку.
Итак, почему /tmp должен идти после /var, а не наоборот? Т.к. если сделать наоборот, то головка диска будет сильно порхатся ей будет нужно при каждом обращении к /var пересекать весь /tmp. В некоторых системах можно настроить каталог /tmp как резидентную
” файловую систему – это фактически тоже что и виртуальный диск ПК. Специальный драйвер выдает себя за драйвер диска,но на самом деле записывает данные в память, что приводит к значительному ускорения чтения и записи временных файлов. Для этого смотрим #man mfs
Теперь /usr его желательно держать плотнее к корневой. А /swap лучше расположить в начале диска выделив сколько ни будь под него памяти :) (исходя из RAM это рассмотрим ниже) А корневой "/" я выделил 512Mb хотя в хенбуке цитирую
|
Я пару раз сталкивался с тем, что 100Mb у меня забивались, что доставляло мне некоторые неудобства. Можно конечно и 256 поставить, но конкретно для меня я ставлю 512Mb или 256Mb, если HDD маленький или знаю, что будет на сервере.
Swap
Теперь поговорим о Swap, сколько же в действительности нужно *BSD с N количеством RAM и как она желает с ним работать и главное во сколько эффективно? Если у вас есть хотя бы 512 RAM то у *BSD будет мало желания работать со Swap (во всяком случае, в нетрудоемких задачах и компиляции). В ханбуке написано следующее.
|
Исходя из текста выводим следующее, чем больше у меня RAM, тем больше мне надо Swap, а не наоборот (что-то в жизни я не понимаю :)) это совершенно нелогично!
Следуя если у меня 2 гига утрирую RAM, то нужно 4-6 гигов свопа! %0 нежизнеспособно все это полный бред! А если у меня 512 RAM 512*2=1024 свопа ставить совершенно нецелесообразно. Но помните, если виртуальной памяти не хватит и приложение, которое затребовало ее просто завершится с ошибкой, так что думайте. Но в ханбуке есть пару дельных мыслей это расположить Swap на отдельном (втором HDD об этом я говорил выше) и распределить на 2 HDD. Максимальная производительность подкачки достигается в случае распределения области подкачки между несколькими дисками (или еще лучше, между несколькими шинами SCSI)
Т.е. сделать два Swap на каждом из HDD, что в идеале увеличит быстродействие.
Теперь к делу в реале рассчитываем Swap и так.
|
Обычно добавляется к конечному свопу еще дополнительно 20-30 Mb
Если у вас еще больше RAM, то уменьшаем далее своп, т.е. можно 256 Mb Swap или вообще, сколько ни будь ыделить, ну идея ясна. Со свопом разобрались, посмотрим, как система будет с ней управляться.
Статистика виртуальной памяти
Если HDD трещит часто и надоедливо это свидетельствует о высокой интенсивности операций подкачки.
Использование свопа можно узнать командами swapinfo или pstat -s
Смотрим степень использования свопа
#swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b 262144 0 262144 0% |
Как видим своп отдыхает :) заполненность его нулевое.
А для получение подробной статистики работы swap используют vmstat.
|
Эта команда есть во всех UNIX подобных системах от HP-UX до Linux.
Vmstat раскладывает на 6 тематических разделов.
procs - информация о процессах
r - кол-во готовых к запуску процессов
b - кол-во заблокированных в ожидании ресурсов ввода/вывода
w - кол-во готовых к запуску, но перемещенных в своп процессов
memory - кол-во доступной RAM
avm - объем доступной виртуальной памяти в килобайтах
fre - объем свободной памяти (в килобайтах)
page - активность страничной подкачки
flt - кол-во "промахов" те обращение к страницам, которых в RAM на данный момент нет
re - число возвращенных страниц (восстановленных из списка неиспользуемых)
pi - кол-во подкаченных страниц
po - кол-во выгруженных страниц
fr - кол-во освобожденных страниц
sr - число страниц обработанные по алгоритму "часы" (алгоритм пометки давно неиспользовавшихся страниц)
disks - операции с HDD (число в секунду)
Число операций с дисками (в данном примере два диска ad0 и ad2)
faults - переключение контекста и прерываний (число в секунду)
in - число прерываний
sy - число системных вызовов
cs - число переключений контекста
cpu - использование CPU
us - время, потраченное на исполнение кода программ
sy - время, потраченное на исполнение кода ядра (системные вызовы, ввод\вывод)
id - время простоя
По умолчанию vmstat снимает 1 раз и все, но это не дает общую картину т.к. нам нужно хотя бы
приближенно к реальному времени для этого запускаем vmstat так
|
Вот типичный листинг
#vmstat 1 3 procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad0 ad2 in sy cs us sy id 1 1 0 395856 64772 11 0 0 0 14 2 0 0 140 112 360 1 1 98 0 1 0 395856 64772 3 0 0 0 0 0 0 0 145 188 371 0 1 99 0 1 0 395856 64772 0 0 0 0 0 0 8 0 177 170 440 0 0 100 |
Так что, понаблюдав за этим можно выявить, например такое, если в procs в колонке w часто становится больше 0 то системной памяти не хватает. Далее смотрим в page колонка fr если значение слишком высокое то значит завершилась какая то программа либо памяти просто не хватает (при условии числа не достигают 3% от общего обьема системной памяти).
Полную статистику за все время непрерывной работы BSD можно узнать указать флаг -s
Этот флаг выдает статические данные не по страничным операциям, а по перекачке процессов.
|
Статистика кол-ва прерываний поступивших от устройств флагом -i
|
И для интересующихся ядром есть флаг -m это количество памяти, выделенное ядром под свои нужды.
|
Для начала хватит, чтобы разобраться со своим домашним сервачком :) и диагностировать проблемы со свопом и многим другим vmstat очень универсальная вещь для диагностики проблем.
Анализ операций обмена с диском. Статистика ввода/вывода
Для наблюдения за пропускной способностью HDD есть команда iostat
#iostat tty ad0 ad2 cpu tin tout KB/t tps MB/s KB/t tps MB/s us ni sy in id 0 1 14.43 2 0.03 18.41 0 0.01 1 0 0 0 98 |
Статистика похожа на vmstat
tty - число введенных и выведенных символах в сек.
tin - с терминала
tout - с псевдотерминала
(tty - ничем неинтересен)
ad0 - соб-но HDD тут их два ad0 и ad2
KB/t - объем инфы в килобайтах переданных за 1 пересылку данных
tps - кол-во переданных данных в секунду
MB/s - объем данных в мегах переданных в секунду
cpu – Это хар-ки CPU (см выше также как в vmstat)
К счастью iostat можно запускать с флагом –d Что исключит ненужные tty и cpu :)
Чтобы полностью просмотреть статистику за все время работы системы по HDD запускаем с -I
#iostat -I -d ad0 ad2 KB/t xfrs MB KB/t xfrs MB 14.39 75730 1064.27 18.41 14278 256.71 |
KB/t - объем инфы в килобайтах переданных за 1 пересылку данных
xfrs - общее количество пересылок
MB - общий объем переданных данных
Я не рассматривал разные примеры разбивки систем. Я например для FTP беру 250Gb HDD и подрубаю /ftp
со всеми вытекающими плюсами :). На ответственных серверах люди делают что-то типа /data т.е. отделяют мух от котлет ;) и ставя туда нужные сервисы для повышения стабильности и безопастности(типа апача,сквид,mysql). Размеры и резка на слайсы решает только сам админ исходя из своих нужд и задач. А здесь описано общая схема работы, так что в путь.
Литература
1) FreeBSD Энциклопедия пользователя Майкл Эбен Брайан Таймэн - стр.54,55,354-358,730
2) UNIX руководство системного администратора 3е изд. - стр.158,796-804,
3) Handbook - 2.5.5., 11.2.1.2.
4) Хакер Спец 08/69/август 2006 - стр. 24, 46-48,
5) Гугления всея сети + свои испытания :)
Вроде все указал где смотрел :)
Продолжение следует...
размещено: 2007-03-31,
последнее обновление: 2007-04-11,
автор: Raven2000
thesame, 2007-04-01 в 13:00:46
я бы все-таки делил по-другому: во-первых, не экономил на
свопе, разве что диск маленький... во-вторых, размер /tmp
явно недостаточный. мой вариант - минимум 512M под своп и
минимум гигабайт под /tmp. еще я обычно выделяю /home
отдельно, а под /usr отвожу не больше 2-4 гиг.
Raven2000, 2007-04-01 в 13:11:09
>мой вариант - минимум 512M под своп
Свой расчет я показал исходя из реальных фактов в моей работе ты как
раз пройдись vmstatм по своим сервакам и тд и зацени как используется
твой своп на разных серваках и раскажи нам целесообразно это или нет.
>и минимум гигабайт под /tmp еще я обычно выделяю /home отдельно,
а под /usr отвожу не больше 2-4 гиг.
Эт как раз из последнего раздела цитирую
>Это решает только сам админ исходя из своих нужд и задач здесь
описано общая схема
А темпы чистить надо эт отдельный разговор :)
И я кстати тоже невсегда так раскидываю /usr бывало и 512mb ;) и
бывает добавляю слайс /usr/home и тп в общем исходя из задач.
psj, 2007-04-02 в 11:02:51
для thesame
> а под /usr отвожу не больше 2-4 гиг.
Если Вы делаете рабочую станцию и при инсталяции
Х-ов из портов для /usr требуется не менее, по-моему, 6 Гиг.
thesame, 2007-04-02 в 20:35:42
Со многим я согласен. Вообще, в идеале, если какая-то задача
попадает в swap - есть повод задуматься о добавлении оперативки.
С другой стороны - если под swap отведено места меньше, чем объем
оперативки, мне становится сильно некомфортно - старые привычки...
В общем, мне проще заложить размер на порядок больше реально
требуемого, чем столкнуться через несколько месяцев с необходимостью
добавлять swap на уже работающей машине.
Raven2000, 2007-04-02 в 21:00:21
thesame
>если какая-то задача попадает в swap - есть повод задуматься
о добавлении оперативки.
Идея правильная но чтобы в такой форме... мдя Фря не маздай.
Надо чуть мягче если своп работает очень часто напр. на 35-50%
задействован то определенно стоит задуматся. А на счет 1-5 задачки
в своп ты наверное чуть загнул а если для свопа это задачки весят
1-7% от него и че? :) Бежать за оперой?
>сильно некомфортно - старые привычки...
Некоторые спят на голове так что старые привычки это кончно хорошо,
но мы же на фре а не маздае так что в руки vmstat и искореняй
привычки :)
>В общем, мне проще заложить размер на порядок больше
Опять гуд мысль, но если ты знаешь что будет делать твоя фря
в будещем если она будут токо как роутер то чтож прикажешь 512
метров отдавать при наличия харда в 2-3 гига %) Так вот и подошли
к устройству /dev/head :) Так что думаем для чего и делимся мыслями
тут http://forum.lissyara.su/viewtopic.php?t=3085
major12, 2007-04-05 в 1:13:57
gstat - можно посмотреть чем сейчас рейд занимается ;)
squirL, 2007-04-05 в 22:25:44
отличный план... а куда будет скидываться корка ядра при падении системы, мы не учитываем?
lissyara, 2007-04-05 в 22:43:38
ф топку :))
Вы постоянно роетесь в корке?
Хотя согласен - когда надо будет - то её не окажется, в итоге.
squirL, 2007-04-06 в 15:25:14
именно :) я и вы, понимаем, что оно не всем и не всегда надо. Но ваш сайт пользуется ниибаццо (простите за мой японский) большим авторитетом у пионерии. Которая вместо хендбука читает этот разухабистый текст, со стилистикой журнала хакер. с идеологически неправильными советами :)
Raven2000, 2007-04-06 в 16:21:43
squirL
>разухабистый текст, со стилистикой журнала хакер. с >идеологически неправильными советами :)
Это что камень в мой огород? :)
A кому надо пусть читают хендбук со всеми вытекающими :)
proxy-man, 2007-04-08 в 19:10:20
Статью необходимо откорректировать - слишком уже много всяких неаргументированных размышлений... Верно заметил камрад squirl - нельзя такие вещи советовать новичкам
Raven2000, 2007-04-08 в 23:55:03
Для squirl&proxy-man
Дописал список литературы, где я собирал материал и, где вы сможете найти аргументацию на все ваши вопросы. Писал не для философии и теологии, а для реальной работы без флейма. Так что аргументированные размышления см. в литературе которые прописал (там много аргументированного).
weec, 2007-04-12 в 8:36:57
ИМХО, я конечно благодарен автору за статью, что постарался провел несколько экспериментов
но, этот автор(я так понимаю сис.админ со стажем и большим опытом) просто забыл про "панику в системе"
"паника в системе" - это как раз один из моментов когда она нуждается в свопе двухкратном размеру оперативки. Если в момент "паники в системе" в свопе будет достаточно места, то дамп ядра сохраниться в целости и сохранности в гостепреимном и большом свопе :)
Raven2000, 2007-04-12 в 11:25:58
weec
Ты прав я не спорю, и я незабыл :) т.к. эта статья для новичков и они в корке точно разбиратся небудут. А продвинутые сразу заметят что для них мало свопа и тд + увеличат под себя и своп и добавят новые слайсы изменят размеры и д.р. так ведь? ;)
nesq, 2007-05-10 в 16:22:26
не вижу смысла разделять /home и /usr, лучше по старинке - /home -> /usr/home, чем потом мучаться, если где-то неправильно поделил
mrsaint, 2007-06-08 в 18:57:48
ещё есть утилита-мониторинг qstat
shahnazarov, 2007-12-01 в 18:32:03
Думаю убиться ап стенку Линукс проще или я просток нему привык как тяжело переходить на что то новое
nikll, 2008-02-08 в 8:22:26
Хороше бы если ктонибудь детально описал процесс тюнинга vm подсистемы, ато у мна 4Гб памяти 2х ядерный кора, загруска проца в среднем не превышает 20%, по памяти 2-2,5 гига свободно, а винтами шуршит - мама негорюй, лудьше бы он это дело кешировал пообильнее, ведь оперативки хоть жопой жуй (по цене грязи 550р за 1Гб), перерыл весь sysctl так и непонял в какую сторону рыть
Z-16-H, 2008-03-21 в 5:31:37
спасибо за статью.
Al, 2009-05-06 в 11:59:13
Нормальная статья. Мне вот диски помониторить надо. Я тут нашел многое для этого.
>ещё есть утилита-мониторинг qstat
Добавь в статью,если не трудно. Реально полезная порой весчь, а коменты не все читают.
Кстати,посотреть,какой процесс загружает диск реально? Тож бы неплохо было для мониторинга)
AWK, 2009-11-17 в 1:58:14
>>Кстати,посотреть,какой процесс загружает диск реально?
/usr/ports/sysutils/lsof
показывает открыте файлы по процессам, юзверям и т.д
BoomBerbun, 2010-05-18 в 14:50:23
Нормально написано! Если б раньше прочитал эту статью а не хандбук, то не попал бы в просак с переполнением раздела /var.
Мфынф, 2010-11-01 в 20:34:53
Тупая статья ни о чём.
Всё нужно делать наоборот.
Alexander, 2010-12-23 в 6:29:26
Вы писали:
---------------------------------------------------------------------------
1)
Если у вас больше одного диска, можно расположить подкачку на каждом диске.
FreeBSD будет использовать каждый диск, что серьезно увеличит скорость подкачки.
В этом случае, определите общий размер подкачки, который вам нужен (например, 128 MB),
и поделите его на число имеющихся дисков (например, два)
для определения размера
разделов подкачки, которые нужно разместить на каждом вашем диске,
в этом примере 64 MB на диск.
2)
Исходя из текста выводим следующее, чем больше у меня RAM, тем больше мне надо Swap, а не наоборот (что-то в жизни я не понимаю :)) это совершенно нелогично!
Следуя если у меня 2 гига утрирую RAM, то нужно 4-6 гигов свопа! %0 нежизнеспособно все это полный бред! А если у меня 512 RAM 512*2=1024 свопа ставить совершенно нецелесообразно.
---------------------------------------------------------------------------
Прочтите 10 раз написанное ... я расставил акценты
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [24 шт.]