Тюнинг ядра Linux j1m (j1m@list.ru) Хакер, номер #082, стр. 082-102-4 [файлы руками не трогать] Настройки файловых систем хранятся в каталоге /proc/sys/fs. Необходимость в правке файлов этого каталога возникает очень редко, но для полноты картины мы все-таки рассмотрим некоторые его элементы. Наверное, единственное, что тебе придется когда-либо изменять, это максимальное количество одновременно открытых файлов. Делается это путем записи значения в файл file-max. Если у тебя нет нагруженного веб-сервера или базы данных, то изменять дефолтное значение не имеет никакого смысла. Количество открытых в текущий момент файлов можно узнать из файла file-nr, он содержит три числа: число открытых файлов, ноль (всегда ноль в ядрах ветки 2.6) и значение из файла file-max. У меня, например, этот файл содержит "575 0 12408". Скомпилировав ядро с опцией "Executable file formats ->gt; Kernel support for MISC binaries", ты получишь интересную возможность обучать ядро различным форматам исполняемых файлов. На уровне теории технология очень проста. Мы просто указываем ядру, что, например, файлы с расширением ".exe" следует запускать при помощи wine. Теперь, если ты напишешь: $ ./file.exe То ядро выполнит команду "wine file.exe", и бинарник успешно запустится. Неправда ли удобно? Рассмотрим, как это выглядит на практике. Сначала примонтируем виртуальную ФС binfmt_misc: # mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc Теперь запишем в файл /proc/sys/fs/binfmt_misc/register информацию о файле и интерпретаторе в таком формате: ":имя:тип:смещение:магическое_число:маска:путь_до_интерпретатора:". Если поле "тип" равно "M", то тип файла вычисляется по магическому числу, лежащему по заданному смещению внутри бинарника. Напротив, если "тип" равен "E", то тип файла вычисляется по расширению, записанному в поле "магическое_число". Поле "имя" - это всего лишь идентификатор, а поле "маска" обычно пропускается. Зная все вышеперечисленное, выполняем команду: # echo ':EXE:E::exe::/usr/bin/wine:' >gt; /proc/sys/fs/binfmt_misc/register Все, теперь можешь попробовать, твои экзешники будут запускаться. [развивай память] Изменяя файлы каталога /proc/sys/vm, можно влиять на работу подсистемы виртуальной памяти. В некоторых случаях это действие оказывается довольно полезным. Есть вероятность повысить отклик системы. В ядрах ветки 2.4 была предусмотрена возможность изменять множество различных параметров подсистемы виртуальной памяти. Ядра 2.6 стали более интеллектуальными, и теперь нет необходимости в ручном тюнинге большинства параметров. Зато был оставлен интерфейс управления демоном bdflush, который контролирует процесс записи "грязных" буферов на диск. Собственно все его конфиги располагаются в нескольких файлах с префиксом dirty. Файл dirty_background_ratio отражает количество "грязных" страниц памяти (в процентах от общего количества памяти), при накоплении которых bdflush должен начать запись на диск. Каждый процесс может сам, без участия bdflush, записывать данные обратно на диск. Файл dirty_ratio отражает количество страниц, при накоплении которых процесс сам должен начать запись на диск. Интервал между просыпаниями демона bdflush можно изменить через файл dirty_writeback_centisecs (значение в сотых долях секунды). Время "старения" самих буферов контролируется через файл dirty_expire_centisecs (опять же в сотых долях секунды). |