|
| |||||||||||||||||||
| |||||||||||||||||||
Изменение некоторых настроек системыПосле установки Linux-а на своем лэптопе я обнаружил, что он обращается к жесткому диску каждые несколько секунд, даже если нет пользователей, вошедших в систему. Соответственно, жесткий диск не мог войти в режим ожидания. Снижение активности жесткого диска может намного увеличить время работы на батареях. Поэтому я собрал эту коллекцию рецептов. Все они проверены на RedHat 4.1, в вашем дистрибутиве пути к файлам конфигурации могут отличаться. (если так, дайте мне знать.) Демон crond и atrunПроверьте файл /etc/crontab и убедитесь в том, что он запускается каждую минуту. Часто здесь можно найти atrun. С помощью команды at реализуется отложенный запуск команд. Некоторые системы Linux используют для этого выделенный демон atd, другие (например RedHat) используют crond для запуска раз в минуту atrun. На большинстве систем не требуется запуск команд at точно в определенное время. Поэтому, если в вашем /etc/crontab есть строки
то можно смело изменить их на
Для получения более подробной информации читайте man 5 crontab. Некоторые могут нормально работать вообще без демона crond, так что, если вы знаете, что делаете, то можете вообще его выключить. Демон update / bdflushLinux работает со множеством одновременно открытых файлов, поэтому система должна быть уверена, что изменения, произведенные в них, будут сохранены на жесткий диск, как можно быстрее. В случае аварии системы эти изменения будут потеряны. Этим занимается демон update / bdflush. (Это имена одной программы, для запуска демона можно использовать и то, и другое.) По умолчанию flush вызывается каждые 5 секунд и sync - каждые 30 секунд. Это приводило к постоянному доступу к моему диску Fujitsu. (Похоже, этот жесткий диск сбрасывает (записывает) свой кэш даже при отсутствии в нем каких-либо изменений. Впрочем, это зависит от производителя - по сообщениям других некоторые диски переходят в режим ожидания даже без нижеприведенных изменений.) Сбои Linux теперь - это не такое уж частое явление, поэтому я сменил оба значения на 3600 секунд (= один час), что не вызвало никаких проблем и остановило постоянный доступ к диску. (Но если сейчас моя система аварийно завершит работу, то испорченных файлов будет, конечно, больше) RedHat 4.1: B /etc/inittab, измените вызов update на:
Suse 4.4.1: update вызывается из /sbin/init.d/boot. Slackware: update вызывается из /etc/rc.d/rc.S. Если хотите углубиться в подробности - читайте man update. Демон syslogdДемон syslogd отвечает за различные файлы системных журналов Linux, находящихся в каталоге /var/log/. По умолчанию syslogd сбрасывает на диск (sync) файлы журналов всякий раз после записи в них системного сообщения. Вы можете отключить сброс, поставив перед именем файла в файле /etc/syslog.conf знак "минус". Вот пример syslog.conf из моей системы:
Опять таки, в случае аварии системы, сообщение о возникшей проблеме, скорее всего, не будет записано на диск. Дилемма... Команда initВо время загрузки начальные процессы и демоны запускаются командой init. Эта команда (опять таки) вызывает sync перед созданием любого нового процесса. Это можно изменить, убрав вызов sync() в исходных текстах и перекомпилировав init. Чтобы избежать проблемы с потерянными файловыми буферами, следует добавить в скрипт /etc/rc.d/init.d/halt перед отключением файловых систем вызов sync. Раздел подкачкиРаздел подкачки Linux используется для увеличения размера физической памяти за счет виртуальной памяти, что, опять-таки, может послужить причиной доступа к диску. Если на вашем лэптопе много памяти, или используемые вами приложения довольно просты (подумайте о vi),то, возможно, вам стоит подумать об отключении этого раздела. Само собой, решение должно зависеть от того, что вы собираетесь делать. 4 - 8 Мб памяти однозначно недостаточно для работы без раздела подкачки. 8 - 16 Мб достаточно для работы текстовых консольных приложений, если вы, конечно, не используете активно многозадачность. Работа в X-Windows требует большого количества памяти - если размер памяти вашего компьютера не намного превышает 16 мб, то отключать раздел подкачки не следует. (Отступление: Мой лэптоп с 16 мб и отключенным разделом подкачки одновременно работал с emacs, четырьмя оболочками bash и компилировал ядро, не испытывая недостатка в памяти. Этого для меня достаточно.) Если вы уже установили раздел подкачки, то можете отключить его, поставив символ решетки перед командой командой swapon, вызываемой из /etc/rc.d/rc.sysinit. Если вы не хотите насовсем отключать раздел подкачки, то можно заставить систему спрашивать вас во время загрузки, следует ли использовать подкачку. В файле /etc/rc.d/rc.sysinit (RedHat 4.1) или /sbin/init.d/boot (Suse 4.4.1):
В этом случае можно включать подкачку при работе от сети и не использовать при работе на батареях. Демон apache httpdЯ использую мой лэптоп для написания и отладки cgi скриптов, поэтому на нем работает локальный веб-сервер. В стандартной конфигурации он слишком велик, если все, что вам нужно - просто проверять, работает ли скрипт или, иногда, как выглядит страничка. Просто смените в файле httpd.conf значения MinSpareServers и StartServers на 1. Этого вполне достаточно для локального тестирования. Если вы хотите выключить ведение веб-сервером журнала, то перекомпилируйте демон httpd. За подробностями обращайтесь к документации. Grant Taylor перекомпилировал ведение журнала и обнаружил, что от этого apache не перестал "дергать" диск. Поэтому я нашел, как мне кажется, лучшее решение - запуск apache не демоном, а через inetd." Читайте man inetd. Пакет XFree86Настройка XFree86 для лэптопов - это отдельная история. Я, опять таки, отсылаю вас к Linux Laptop page, где можно найти помощь по этому вопросу. Гашение экрана X консоли всего лишь очищает его (делает черным), но не выключает. Как было отмечено в "Примечании о выключении консоли" , для настройки гашения можно использовать опцию dpms команды xset Впрочем, эта возможность зависит от графического адаптера и bios вашего лэптопа. Grant Taylor использовал следующие настройки для выключения экрана своего лэптопа, с помощью apmd и хранителя экрана:
где apm_standby - это suid perl скрипт, позволяющий лишь некоторым пользователям запускать apm -S. Редактор emacsЛадно, emacs - это не редактор, а стиль жизни. Вот подсказка Florent Chabaud: "Если вы использовали emacs, то, может быть, заметили, что этот редактор кое-что сохраняет автоматически. Эта возможность, конечно, очень полезна и не должна быть выключена, но ее параметры могут быть немного подстроены под лэптоп. Я добавил в файл /usr/share/emacs/site-lisp/site-start.el следующие две строки:
При этом выключается автосохранение по времени, и включается автосохранение по количеству нажатий (2500) на клавиши. Если вы набираете текст, то можно уменьшить количество нажатий; для программирования же это в самый раз. Так как считается любое нажатие (вверх, вниз, влево, удаление символа, вставка из буфера, и т. д.), то лимит в 2500 нажатий достигается довольно быстро." Как найти другие пути оптимизацииЕсли ваша система Linux все равно слишком часто обращается к диску, то с помощью команды ps ax можно выяснить, что происходит внутри. Она выводит список процессов с полным именем каждого, иногда даже хватает места для аргументов командной строки. После этого прочитайте руководство (man) по каждому процессу, с целью найти способ, изменить его поведение. Так вы наверняка обнаружите процесс, виновный в частом обращении к диску. Команда strace также может пригодиться. Пожалуйста, пошлите мне письмо, если найдете что-то новое.
| |||||||||||||||||||
|
CITForum © 1997–2025