Linux mini-HOWTO

         

А что если мой лэптоп не поддерживает APM?


Если в bios вашего компьютера нет настроек сохранения энергии (хотя даже старые лэптопы, не поддерживающие apm, позволяют, как минимум, установить время до перехода компьютера и жесткого диска в режим ожидания), то воспользуйтесь командой hdparm -S. Даже это сильно поможет, так как жесткие диски потребляют много энергии. hdparm должен быть установлен в системе, синтаксис команды описан в man hdparm.



Что APM может сделать для вас


Я не буду вдаваться здесь в детали - за более подробной информацией обращайтесь к Linux APM drivers page по адресу http://www.cs.utexas.edu/users/kharker/linux-laptop/apm.html

Все, что вам нужно знать - это то, как с помощью apm процессор может указать bios, что в данный момент не происходит ничего интересного, так что bios может немножко позаботиться о сохранении энергии: снизить тактовую частоту, выключить жесткий диск и дисплей, ну и т.п.

Apm отвечает за режимы "ожидания" (suspend) и "сна" (sleep), а также за режим "выключения диска" (suspend to disk) или "состояния ожидания" (hibernation). Другая замечательная, хотя и не столь важная возможность - с помощью apm shutdown -h не только остановит вашу систему, но и выключит компьютер.

(Кстати, большинство систем Linux вставляют shutdown -r в файл /etc/inittab

и связывают его с нажатием control-alt-delete. Я предпочитаю вместо -r прописывать -h, так что нажатие известной комбинации клавиш просто выключает мой компьютер.)

Не все производители корректно реализуют apm bios, так что на некоторых лэптопах могут возникать проблемы с драйверами apm под Linux (если это относится к вашей машине, то, скорее всего, она будет зависать либо при загрузке системы, либо при выходе из режима ожидания). Если вы не уверены, посмотрите информацию про вашу модель на Linux laptop page.



Демон apache httpd


Я использую мой лэптоп для написания и отладки cgi скриптов, поэтому на нем работает локальный веб-сервер. В стандартной конфигурации он слишком велик, если все, что вам нужно - просто проверять, работает ли скрипт или, иногда, как выглядит страничка.

Просто смените в файле httpd.conf значения MinSpareServers и StartServers

на 1. Этого вполне достаточно для локального тестирования.

Если вы хотите выключить ведение веб-сервером журнала, то перекомпилируйте демон httpd. За подробностями обращайтесь к документации.

Grant Taylor перекомпилировал ведение журнала и обнаружил, что от этого apache не перестал "дергать" диск. Поэтому я нашел, как мне кажется, лучшее решение - запуск apache не демоном, а через inetd." Читайте man inetd.



Демон crond и atrun


Проверьте файл /etc/crontab и убедитесь в том, что он запускается каждую минуту. Часто здесь можно найти atrun.

С помощью команды at реализуется отложенный запуск команд. Некоторые системы Linux используют для этого выделенный демон atd, другие (например RedHat) используют crond для запуска раз в минуту atrun.

На большинстве систем не требуется запуск команд at точно в определенное время. Поэтому, если в вашем /etc/crontab есть строки



Демон syslogd




Демон syslogd отвечает за различные файлы системных журналов Linux, находящихся в каталоге /var/log/. По умолчанию syslogd сбрасывает на диск (sync) файлы журналов всякий раз после записи в них системного сообщения.

Вы можете отключить сброс, поставив перед именем файла в файле /etc/syslog.conf знак "минус". Вот пример syslog.conf из моей системы:



Демон update / bdflush


Linux работает со множеством одновременно открытых файлов, поэтому система должна быть уверена, что изменения, произведенные в них, будут сохранены на жесткий диск, как можно быстрее. В случае аварии системы эти изменения будут потеряны.

Этим занимается демон update / bdflush. (Это имена одной программы, для запуска демона можно использовать и то, и другое.) По умолчанию flush

вызывается каждые 5 секунд и sync - каждые 30 секунд.

Это приводило к постоянному доступу к моему диску Fujitsu. (Похоже, этот жесткий диск сбрасывает (записывает) свой кэш даже при отсутствии в нем каких-либо изменений. Впрочем, это зависит от производителя - по сообщениям других некоторые диски переходят в режим ожидания даже без нижеприведенных изменений.)

Сбои Linux теперь - это не такое уж частое явление, поэтому я сменил оба значения на 3600 секунд (= один час), что не вызвало никаких проблем и остановило постоянный доступ к диску. (Но если сейчас моя система аварийно завершит работу, то испорченных файлов будет, конечно, больше)

RedHat 4.1: B /etc/inittab, измените вызов update на:



Изменение некоторых настроек системы


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

Все они проверены на RedHat 4.1, в вашем дистрибутиве пути к файлам конфигурации могут отличаться. (если так, дайте мне знать.)



Как найти другие пути оптимизации


Если ваша система Linux все равно слишком часто обращается к диску, то с помощью команды ps ax можно выяснить, что происходит внутри. Она выводит список процессов с полным именем каждого, иногда даже хватает места для аргументов командной строки.

После этого прочитайте руководство (man) по каждому процессу, с целью найти способ, изменить его поведение. Так вы наверняка обнаружите процесс, виновный в частом обращении к диску. Команда strace также может пригодиться.

Пожалуйста, пошлите мне письмо, если найдете что-то новое.



Как включить поддержку APM под Linux


Это просто - достаточно перекомпилировать ядро Linux. Если вы не знаете, как это сделать - посмотрите Kernel-HOWTO.

Ниже приведены значения опций ядер 2.0.30 и выше, установленные по умолчанию (раздел "символьные устройства"):



Команда init


Во время загрузки начальные процессы и демоны запускаются командой init. Эта команда (опять таки) вызывает sync перед созданием любого нового процесса.

Это можно изменить, убрав вызов sync() в исходных текстах и перекомпилировав init.

Чтобы избежать проблемы с потерянными файловыми буферами, следует добавить в скрипт /etc/rc.d/init.d/halt перед отключением файловых систем вызов sync.



Мини-HOWTO: "Linux и питание от батарей"


Hanno Mueller
hanno@lava.de


Перевод: Денис Дементьев, ASPLinux

В этом документе приводится описание того, как, изменив некоторые настройки, снизить потребление электроэнергии системой Linux. Это может пригодиться тем, кто работает в Linux на переносном компьютере. В документе также содержится общая информация по обслуживанию батарей. Если ваш Linux установлен на настольном компьютере, то, наверное, вам незачем читать все это.



О батареях


(Пожалуйста, обратите внимание на раздел "Благодарности".)

В данный момент для переносных компьютеров в основном используются три типа батарей.

NiCd (никель-кадмиевые) батареи многие годы были стандартом, но сейчас они устарели, и более не используются в новых лэптопах. Они тяжелы и очень склонны к "эффекту памяти". При неполной перезарядке разряженной NiCd батареи, она "запоминает" старый заряд, и при следующем использовании уровень заряда будет равен старому.

Эффект памяти вызван кристаллизацией вещества батареи и может уменьшить время жизни батареи, или даже вывести ее из строя. Чтобы его избежать, необходимо полностью разряжать и затем полностью заряжать батарею, как минимум, раз в несколько недель. (Небольшое отступление, касающееся эффекта памяти. James Youngman предложил довольно радикальный метод - э-э-э - "починки" батарей: "Если ваша NiCd батарея страдает от эффекта памяти, то извлеките ее из компьютера, поднимите примерно на 30 см от поверхности стола или пола и бросьте (только убедитесь, что она приземлится ровно)." По его словам, при этом наслоения внутри батареи, вызывающие эффект памяти, отламываются. "Я не знаю, будет ли это работать не с NiCd батареями.")

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

На случай, если вам интересны некоторые характеристики NiCd:



Об этом документе


В этом тексте упоминание о батареях встречается 53 раза.

Свежая версия этого и многих других HOWTO, большинство из которых намного полезнее этого, может быть найдена на главном сайте документации Linux http://sunsite.unc.edu/mdw/linux.html или на одном из его многочисленных зеркальных сайтов.

Большая часть текста была написана во время моих путешествий в поезде между Гамбургом и Ганновером. (Новые вагоны ice-2 имеют розетки для лэптопов, урра!).

А теперь напевайте со мной: "...дорога, дорога..."



Общая информация


В этом разделе дается информация о некоторых технических деталях использования батарей переносных компьютеров, а также общие подсказки по сохранению энергии батарей. Этот раздел не является специфичным для Linux, и если вы опытный пользователь переносных компьютеров, то, наверное, все это уже знаете.



Пакет apmd


После того, как вы включили поддержку APM, скачайте пакет apmd с Linux APM drivers page. Он не является обязательным, но в нем есть несколько полезных утилит. Демон apmd ведет журнал состояния батарей и посылает предупреждение, когда они садятся. Команда apm может перевести систему в режим ожидания, а xapm показывает состояние ваших батарей.

(Кстати, если у вас возникают проблемы с pcmcia картами при возврате из режима ожидания, то попробуйте альтернативный пакет apmd с http://www.cut.de/bkr/linux/apmd/apmd.html. Он выгружает драйвер pcmcia перед переходом в режим ожидания и загружает его при возобновлении нормальной работы.)

Grant Taylor немного поэкспериментировал с пакетом apmd и дал следующие полезные подсказки.

Он обнаружил, что жесткий диск его лэптопа забывает параметр hdparm -S

(время до перехода диска в режим ожидания) при выходе из режима ожидания: "Я подправил apmd так, чтобы он сбрасывал этот параметр при каждом выходе из режима ожидания. Это важная вещь, хотя и системно-зависимая..."

(Примечание: На моем лэптопе время до перехода жесткого диска в режим ожидания контролируется (и сбрасывается в случае необходимости) bios-ом, так что я не могу проверить, является ли эта маленькая проблема системно-зависимой. Если это так, пошлите мне сообщение.)

Grant также использовал хорошую уловку для гашения экрана XFree86, с помощью apmd



это отдельная история. Я, опять


Настройка XFree86 для лэптопов - это отдельная история. Я, опять таки, отсылаю вас к Linux Laptop page, где можно найти помощь по этому вопросу.

Гашение экрана X консоли всего лишь очищает его (делает черным), но не выключает. Как было отмечено в "Примечании о выключении консоли"

, для настройки гашения можно использовать опцию dpms команды xset

Впрочем, эта возможность зависит от графического адаптера и bios вашего лэптопа.

Grant Taylor использовал следующие настройки для выключения экрана своего лэптопа, с помощью apmd и хранителя экрана:


Поддержка APM и драйвера PCMCIA


После перекомпилирования ядра не забудьте перекомпилировать драйвера pcmcia.

Готовые драйвера pcmcia, поставляемые с большинством дистрибутивов, не имеют поддержки apm, из-за чего bios не может дать команду на выключение вашим PCMCIA-картам.

Кроме того, драйвера нужно перекомпилировать при обновлении версии ядра, если старое ядро было скомпилировано с выключенной поддержкой информации о версиях модулей (эта опция находится в разделе "поддержка загружаемых модулей" (loadable module support) конфигурации ядра).

За более подробной информацией по компилированию драйверов обращайтесь к PCMCIA-HOWTO или к Linux PCMCIA drivers homepage на http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html.



Послание дистрибьюторам Linux


Если вы дистрибьютор Linux, то благодарю вас за то, что вы это все прочитали. Лэптопы становятся все популярнее, но большинство дистрибьюторов Linux до сих пор не совсем готовы к использованию этой системы на переносных компьютерах. Пожалуйста, измените ситуацию - сделайте так, чтобы этот документ устарел.

Процедура установки должна включать конфигурацию, оптимизированную для переносных компьютеров. "Минимальной установки" почти всегда достаточно - многие вещи не требуются для пользователя лэптопа в дороге. Несколько примеров: нет нужды в трех различных версиях vi (как в Suse Linux); большинству переносных систем не требуется поддержка принтера (печать обычно производится дома с настольного компьютера); очень немногим лэптопам необходима поддержка сети.

Не забудьте описать специфичные для лэптопов проблемы - как, например, установить ваш дистрибутив без привода компакт-диска или как настроить драйвер plip.

Улучшите управление питанием и добавьте полную поддержку pcmcia. Добавьте готовое ядро и альтернативный набор драйверов pcmcia с включенной поддержкой apm, чтобы пользователь мог при желании поставить их. Включите в состав дистрибутива пакет apmd.

Добавьте поддержку динамически переключаемых конфигураций сети. Большинство лэптопов путешествуют между местами с различными сетями (например, сеть дома, на работе и в университете), из-за чего приходится часто менять сетевые настройки. Изменение сетевых настроек - головная боль большинства дистрибутивов.

Пожалуйста, напишите мне, если ваш дистрибутив оптимизирован для переносных компьютеров. Если вас не затруднит, укажите также, что было для этого добавлено. Следующие версии этого HOWTO будут содержать раздел, рекламирующий поддержку лэптопов вашим дистрибутивом.



Раздел подкачки


Раздел подкачки 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):



Редактор emacs


Ладно, emacs - это не редактор, а стиль жизни. Вот подсказка Florent Chabaud: "Если вы использовали emacs, то, может быть, заметили, что этот редактор кое-что сохраняет автоматически. Эта возможность, конечно, очень полезна и не должна быть выключена, но ее параметры могут быть немного подстроены под лэптоп.

Я добавил в файл /usr/share/emacs/site-lisp/site-start.el

следующие две строки:



Сохранение энергии - очевидные вещи


Есть несколько очевидных правил, помогающих снизить потребление электроэнергии. Ну, может быть, не столь очевидных, потому что не так уж много людей следуют им...

Уменьшайте подсветку вашего дисплея или выключайте его, когда он вам не нужен. Кстати, дисплеи с активной матрицей tft потребляют меньше электроэнергии, чем с пассивной матрицей dstn (теперь у вас есть прекрасное оправдание тому, что вы купили дешевый лэптоп...).

David Bateman сообщил мне, что использование ЭЛТ-дисплея, при работе на батареях (с выключенным дисплеем лэптопа), увеличивает время работы примерно на 30%: "Не очень полезные сведения, так как если у вас есть, куда включать ЭЛТ дисплей, то почему бы не включить и лэптоп.")

Насколько вы используете процессор? Я сомневаюсь, что вы будете заниматься чем-нибудь, кроме редактирования текстов в дороге (по крайней мере, я не занимаюсь сборкой ядра Linux). При работе на батареях снижение скорости работы процессора снизит потребление энергии. Впрочем, немногие лэптопы имеют возможность переключать скорость работы процессора между нормальной и пониженной.

Вентилятор процессора (если таковой у вас установлен). Многие современные лэптопы имеют опцию bios, называемую "контроль охлаждения" (cooling control). Эта опция позволяет вам выбирать, в случае перегрева процессора, между охлаждением его небольшим вентилятором (установка "производительность"(performance)) и снижением тактовой частоты (установка "понижение" (silence)). Для увеличения времени работы на батареях выберите "понижение".

Избегайте использования внешних устройств (принтера, ЭЛТ дисплея, ZIP дисковода, портативной камеры и т. п.), при работе с компьютером на батареях. При подключении обычного струйного принтера, время работы моего компьютера уменьшилось со 120 до 20 минут.

Избегайте использования без необходимости встроенных устройств: дисковода, жесткого диска, привода компакт-дисков. Особенно последнего - доступ к нему сильно уменьшает время работы на батареях.


Pcmcia устройства также потребляют много энергии, так что не оставляйте ваш модем или сетевую карту подключенными, если они не используются. Впрочем, платы разных производителей потребляют разное количество энергии, так что смотрите их спецификации перед покупкой (некоторые карты никогда не выключаются сами, даже если они не используются).

(Кстати, я недавно прочитал, что pcmcia-карты - это очень большая проблема для Windows CE PalmTop. Они потребляют столько энергии, что маленькие батарейки этих микрокомпьютеров должны заменяться каждые несколько минут...)



Используйте простое программное обеспечение. Полновесное мультимедиа-приложение гораздо больше загрузит систему/жесткий диск/привод компакт дисков, нежели простенький текстовый редактор. (Между прочим, я недавно прочитал, что pcmcia карты - самая большая проблема для палмтопов, работающих под управлением Windows CE. Они потребляют так много энергии, что маленькие батарейки этих малышек приходится заменять буквально через несколько минут...)



Grant Taylor дал следующую подсказку для тех, кто желает обновить свою систему: "Новые версии некоторых обновляемых компонентов потребляют меньше энергии. Например IBM Travelstar 2.5 дюймовый 1.6-гигабайтный IDE жесткий диск потребляет на 20 процентов меньше энергии, чем 500 мегабайтный жесткий диск toshiba, с которым поставлялся мой лэптоп".



Если вы все собираетесь купить лэптоп, и для вас важна продолжительность работы на батареях, то не покупайте компьютер с кэшем 2-го уровня. Он на 10 - 20 % быстрее, что намного лучше для мультимедиа приложений, но потребляет намного больше энергии. Бьорн Криус (Bjoern Kriews) сообщил мне, что у него имеется два почти одинаковых лэптопа: один - с кэшем, работает 2ч 30мин; другой - без кэша, работает 4ч 30 мин.

Если у вас уже стоит кэш второго уровня, то, возможно, вам стоит выключить его. Попробуйте и напишите мне, что у вас вышло.



Другая подсказка для тех, кто еще не купил лэптоп - не покупайте последнюю, самую быструю модель. Как правило, компьютеры более старого поколения через некоторое время оптимизируются производителями без какого-либо предупреждения. "Новые" версии старых моделей зачастую меньше греются и потребляют меньше энергии, чем первые.

Кроме того, есть франкенштейновские лэптопы, основанные на процессорах, не оптимизированных под переносные компьютеры. Как я писал в мае 97-го, лэптопы нового поколения, основанные на pentium-200, работали на батареях около 20 минут и так нагревались, что могли сжечь компьютер. Когда я писал вторую версию документа в октябре 97-го, лэптопы на pentium-233 работали на батареях более двух часов. Делайте выводы.



Итак, идея вам понятна. Большинство этих ограничений наверняка избавят вас от необходимости каких-либо серьезных изменений в вашей Linux системе. (Лучший способ сохранить энергию батарей - это... не делать вообще ничего. При этом время работы батарей моего лэптопа увеличилось почти до 100 процентов.)

Итак, займемся рассмотрением более полезных мер по сохранению энергии, которые не мешали бы вашей работе.


Улучшенное управление питанием (Advanced Power Management)


Переносные компьютеры, в общем случае, (и многие настольные) поддерживают apm - "advanced power management" (улучшенное управление питанием). В этом разделе рассказывается о том, как включить поддержку apm в ядре Linux. Те, кто имеет богатый опыт работы с Linux, могут посчитать этот раздел довольно скучным и предпочтут пропустить его.



BogoMips ... failed


Эта глава родилась из огромного числа вопросов появившихся в новостях и полученных мною по почте, напр., Lily, lbliao@alumni.caltech.edu, и Pierre Frenkiel, frenkiel@cdfap2.in2p3.fr. в марте 1995 они спрашивали:

"Когда я загружаю Linux, то я получаю следующее сообщение: Calibrating delay loop.. ok - 23.96 BogoMips failed. Где/почему возникает ошибка в цикле настройки задержки?' "

Ошибки не было. Если бы она произошла, то вы бы получили сообщение "Calibrating delay loop.. failed"

Скорее всего, это случилось из-за драйвера какого-нибудь устройства, если у вас не подключено это устройство. Сразу после подсчета рейтинга BogoMips инициализируются все драйверы. Первыми идут устройства SCSI, затем сетевые устройства, и т.д. О любой неисправности сразу сообщается. Из-за частых отказов, достопримечательностью является драйвер AHA152x. Другими причинами, по которым произошел сбой драйверов (а не подсчета рейтинга BogoMips), являются - сбои системы, большие задержки, зависание системы, произошедшие близко по времени (немного до или сразу после) к выводу "ok - xx.xx BogoMips".

Так как в версии Linux 1.2 многие сообщения об ошибках доработаны, то установите эту версию или выше для того, чтобы узнать, какой именно драйвер является причиной неудач. А так же откомпилируйте машину, чтобы она содержала только нужные драйвера.



BogoMips mini-Howto


Wim van Dorst
baron@clifton.hobby.nl


Перевод: Михаил Корепанов, ASPLinux

В этой главе рассказывается о BogoMips, информация собрана из различных источников, таких как электронная почта и конференции. Так же здесь есть части из различных архивов Linux в частности, файлов HOWTO/mini/BogoMips. На сколько я знаю, есть переводы на французский, японский, итальянский, немецкий, польский, португальский, китайский, и венгерский . Пояснительная статья, под названием 'the Quintessential Linux Benchmark,' появилась в январском выпуске Linux Journal, за 1996. Пояснения по BogoMips можно также найти в The Jargon File. Мы были бы благодарны за добавления в mini-Howto для неописанных процессоров (CPU). Добавления высылать автору по e-mail.



Что такое BogoMips


Это цитата из Internet, автор неизвестен, но оттуда вытащили ее Eric S Raymond esr@thyrsus.com, и Geoff Mackenzie freon@dialstart.net, далее следует юмористическое определение BogoMips, ''сколько миллионов раз в cекунду, процессор может ничего не делать.''

Более серьезное определение, написанное Lars Wirzenius' wirzeniu@kruuna.Helsinki.FI от 9 Сентября 1993, с добавлениями Alessandro Rubini, rubini@norgana.systemy.it, и моими:

"`MIPS - это аббревиатура, миллионы операций в секунду (Millions of Instructions Per Second). Это измерение скорости выполнения программы. Как и большинство таких мер, ей больше злоупотребляют, чем правильно используют (очень трудно сравнивать MIPS различных типов компьютеров).

BogoMips - это изобретение Linus Torvalds. Ядру требуются (или это драйвер устройства?) временные задержки состоящие, из пустых циклов, которые должны быть отрегулированы по отношению к скорости процессора. Так как ядро вычисляет при загрузке, сколько времени занимает каждый тип цикла. "Bogo" происходит от "bogus" (фальшивый, поддельный). Так как величина BogoMips дает представление о скорости процессора, но она настолько антинаучна, что ее назвали не иначе, как BogoMips.

Причины (а их две), почему это выводится во время загрузки, являются: a) удобство для отладки и проверки работы кэша и режима турбо, и b) потому что Linus любит посмеиваться над растерянными людьми в новостях. "

BogoMips определяются в /usr/src/linux/init/main.c (простой алгоритм на C), и записывает ее в переменную ядра loops_per_sec, которая используется некоторыми драйверами для более серьезных нужд. Реальная функция задержки udelay() написана на ассемблере, и поэтому каждый порт имеет свое собственное определение /include/asm/delay.h. Переменные loops_per_sec и функция udelay() используются многими драйверами:



Как определить, какой рейтинг BogoMips должен быть


По инициативе Ian Jackson, ijackson@nyx.cs.du.edu, и Przemek Klosowski, дополненной и расширенной мной.

Как весьма приближенный ориентир, BogoMips могут быть рассчитаны так:



Как определить текущий рейтинг BogoMips


Существует три метода для определения BogoMips:

Посмотрите в /proc/cpuinfo, напр., при помощи `cat /proc/cpuinfo`. Этот метод предпочтительнее других.

Просмотрите то, что было написано во время загрузки в файле syslog (если потребуется, загляните в файлы dmesg или syslogk). В этих файлах указана точная информация.

При помощи программы bogomips. Это рекомендуется для не-Linux систем, по причинам описанным ниже.

Программу BogoMips можно использовать для систем не-Linux, таких как Cray и т.д. Выдержка из файла readme, написанного Jeff Tranter, jeff_tranter@mitel.com:

"Устав перезагружать свою систему, вы можете посмотреть, сколько BogoMIPS она сегодня выдает [...] "Bogomips" - это отдельная программа, которая показывает быстродействие вышей системы, используя самый известный алгоритм. Программа использует тот же код, что и ядро Linux при загрузке, но работает как, пользовательская программа. [...] Версия 1.3 BogoMIPs может быть установлена и запущена на любой системе, которая поддерживает компилятор и библиотеку ANSI C."

Примечание: из-за загрузки системы Linux значение, вычисляемое этой программой, может быть ниже, чем на самом деле. На самом деле, любая пользовательская программа не может дать более точную информацию, чем BogoMips, вычисленное при загрузке системы. Поэтому ниже приводятся только значения вычисленные, при загрузке.

Удостоверьтесь, что файл sunsite.unc.edu:/pub/Linux/system/status/bogo-1.2.tar.gz/ содержит последнюю версию 1.3 (на текущий момент). Но благодаря своей высокой совместимости, она должна откомпилироваться почти на любой системе с компилятором C.



Наиболее часто задаваемые вопросы по BogoMips


Несколько респондентов способствовали моему изучению BogoMips. В этой главе мне хочется их отблагодарить.



Почему надо обращать внимание на рейтинг BogoMips


Разрешите объяснить мне две причины, по которым надо уделять внимание рейтингу BogoMips, получившемуся при загрузке Linux:

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

настройки кэша основной памяти (отложенная запись отрицательно влияет на рейтинг BogoMips, часто он бывает ниже 5; лучше использовать прямую запись)

кнопка turbo (должна быть включена)

программно эмулированный BIOS псевдо-кэш (включите настоящий кэш)

и другие подобные настройки кэша и рабочих частот, также иногда относящиеся к BIOS

Вы хотите узнать, быстрее ли ваша система по сравнению с моей? Конечно, это абсолютно некорректно, ненадежно и ненужно, но это общая "болезнь" всех программ тестирования производительности. Поэтому, почему бы и нет? Эта глупость никогда никого не останавливала? :-)

Замечание: более серьезно эта тема затронута в Linux Benchmarking Howto, написанном Andru D. Balsa.



Подпись


Met vriendelijke groeten, Wim 'Dad' van Dorst. ------------------------------------------------------------------------ Wim van Dorst, Clifton Scientific Text Services, tel/fax +31 355 242 319 This sentence have three erors



Похожие процессоры (Cyrix, NexGen, AMD)


Процессорам, типа Cyrix 486 необходима специальная программа, включающая кэш (эту программу иногда называют - BogoBoost). Рейтинг BogoMips у Cyrix 5x86 и 6x86 CPU резко увеличивается, если в BIOS включить опцию branch-prediction. Заметьте, что увеличение скорости работы имеет свой предел. Есть несколько пакетов для настройки процессоров Cyrix: bogoboost, cx5x86mod, set6x86. Их архивы можно найти на известных сайтах. Еще говорят, что Cyrix 6x86 показывает лучшие результаты с ядром, собранным для 486, а не для Pentium.

Информация о машине на основе процессора NexGen 386-enhanced (Nx586), приведена в одном разделе с 386. Несмотря на то, что они работают как Pentium, по рейтингу BogoMips они относятся именно к 386

AMD 5x86, так же называемые AMD 486DX5 - это учетверенные машины 486/33, поэтому они находятся в одном разделе с другими 486 CPU. Процессоры AMD K5 и K6 являются Pentium-совместимыми CPU.



Разница в рейтингах BogoMips


Linus Torvalds, torvalds@cc.helsinki.fi объясняет, почему бывают различия в рейтингах BogoMips, в c.o.l.development, от 28 апреля 1994:

"BogoMips дает числовой результат, и вы хотите чтобы, он был одинаковым все время. Но обычно вы будете получать разные числа, если скорость работы близка к предельной."

Также, если вы не скомпилировали ядро специально для своего процессора, то может получиться несовпадение рейтинга BogoMips. Эта проблема присуща различным x86 процессорам (Intel и его клоны). Но, к счастью, она решается просто: откомпилируйте ядро специально для своего процессора.

Примечание: на алгоритм BogoMips, вопреки распространенному мнению, версия ядра НЕ влияет .



Системы, работающие не под Linux (для сравнения)


Система BogoMips Кто проверял

Z80 TRS80 model 4 TRSDOS 0.004 Z80/4.6 NC100 ZCN 0.013 68000/8 Macintosh Classic MacOS 0.53 68020/20 Sun 3 SUNOS 2.0 68020/16 Macintosh LC MacOS 3.09 68020/25 Sun 3-180 SUNOS 4.0 Sparc Sun 3-60 SUNOS 4.00 Sparc Sun 3-80 SUNOS 4.00 68030/25 Macintosh IIci NetBSD 5.62 68040/25 Macintosh LC475 MacOS 12.27 68040/33 HP9000-280 HP-UX 14 68040/25 Apollo 5500 DomainOS 14.00 Sparc Sun 4-280/20 SUNOS 16.0 Sparc Sun IPC/40 Solaris 16.00 68040/25 HP9000-425 DomainOS 16.00 68040 NextStep (?) 16.26 Sparc Sun SS1 SUNOS 18.00 Sparc Sun SS1 SUNOS 18.00 IBM RS6000 320 AIX 18.00 Sparc Sun SS1+ SUNOS 19 Sparc Sun SS1+ SUNOS 24.00 Sparc Sun IPC SUNOS 24.00 IBM RS6000 320H AIX 24.00 Sparc Sun Sparcstation2 SUNOS 26.00 SparcClassic/50 Solaris 32.00 Sparc Sun ELC SUNOS 32.00 HP-PA 9000-720 HP-UX 32.00 Sparc Sun SS10 SUNOS 34.00 Sparc Sun SS10 SUNOS 34.00 Pentium/100 Win-NT 36.21 Sparc Sun Sparcstation2 SUNOS 38.0 Mips R4000/100 Indy (?) 48.00 Mips R4000/100 SGI IndySC Irix 48.00 HP-PA 9000-720 HP-UX 48.00 Sparc SS10 SUNOS 48.00 IBM RS-6000-250/66 AIX 52.00 Sparc Sun Sparcstation10d SUNOS 54.0 Sparc SS1000 2CPU SUNOS 58.00 Sparc SS20 SUNOS 60.00 IBM RS6000-250/80 AIX 62.00 Alpha 21064/133 Decstation OSF1 64 Alpha 21064/133 Dec3000 OSF1 66.00 Sparc Sun SS5 SUNOS 68.00 Sparc Sun SS20 SUNOS 72.00 Sparc Sun SS20/712 Solaris 74 Mips R4400/150 Challenge (?) 74.00 Mips R4400/150 Indigo2Extr (?) 74.00 HP-PA 9000-715 HP-UX 74.00 Sparc SS5 sun4m SUNOS 84.00 Sparc SS1000E SUNOS 84.00 Alpha OSF1 92.00 Mips R4400/200 Indigo2Extr (?) 98.00 HP-PA 9000-735/99 HP-UX 98.00 Sparc SS5 SUNOS 104.00 Sparc Sun SS4/110 Solaris 108 Sparc Sun SS4 Solaris 108.00 Sparc Sun SS5 SUNOS 110 Alpha 21064A/233 OSF1 114 Alpha 3000 21064/300 OSF1 120.00 HP-PA 700/125 HP-UX 122 HP-PA 9000-735/125 HP-UX 122.00 Mips R4600/133 SGI Indy Irix 132 MIPS R5000/150 Irix 148.00 IBM 6x86 OS/2 149.13 Alpha OSF1 180.0 MIPS R10000/195 Irix 194.00 Alpha 21164/333 AS500 OSF1 222.00 Sparc Ultra-1 sun4u Solaris 254.00 PPC604/133 IBM RS6000 AIX 254.00 IBM RS-6000 43P powerpc AIX 260.00 Sparc U-1 sun4u SunOS 284.00 Alpha 21164/433 DPW433au OSF1 286.00 HP9000-C160/160 HP-UX 316.00 Sparc Sun US1/170 Solaris 330 Sparc Sun US1/167 Solaris 330 Sparc Ultra-1 sun4u SUNOS 334.00 Alpha 3000-600S VMS 348.61 Alpha server 1000-4/200 VMS 397.68 Sparc Sun-Ultra30/248 Solaris 482.00 Sparc US2/296 2cpu SUNOS 596.00 Cray J90 Y-MP/100 16cpu Unicos 912.00 Sequent Symmetry 6xP5/166 Dynix 984.00 Sequent Symmetry 16xP5/66 Dynix 1056.00 HP9000-C160/160 HP-UX 1278.00 Sequent NUMA-Q 12x P6/180 Dynix 1416.00 Sequent NUMA-Q 32x P6/180 Dynix 3776.00



Сравнение рейтингов


Эти таблицы дают представление о рейтингах BogoMips для различных систем (более 1000, тестов произведенных более чем 800 пользователями, примерно из 50 различных стран). Все это рейтинги систем под Linux, разумеется, кроме таблицы для не Linux систем.



Мини-HOWTO: Мосты Ethernet


Christopher Cole
cole@coledd.com


Перевод: Станислав Рогин, ASPLinux

В этом документе описывается процесс настройки ethernet-моста. Что такое ethernet-мост? Ethernet-мост - это устройство, контролирующее пакеты данных, передаваемых в подсети, существующее для уменьшения нагрузки на сеть. Мост обычно устанавливается между двумя отдельными группами компьютеров, которые часто общаются внутри группы, но значительно реже между группами. Хороший пример использования моста - группа Макинтошей и группа Unix-машин. Обе этих группы достаточно плотно общаются между собой, перегружая сеть, и, в результате, этого мешают другим машинам передавать данные. Мост должен быть помещен между этими двумя группами. Задачей моста будет следующее: определять местонахождение получателя каждого пакета данных, чтобы отфильтровывать пакеты, которые не должны попадать в противоположный от отправителя сегмент ethernet. Результатом этого будет более быстрая и незагруженная сеть с меньшим количеством столкновений пакетов.



Общие проблемы


Вопрос

Я получаю сообщение

ioctl(SIOCGIFBR) failed: Package not installed Ошибка ioctl(SIOCGIFBR): Пакет не установлен

Что это означает?

Ответ

В ваше ядро не встроена поддержка мостов. Установите ядро версии 2.0 или новее, и пересоберите его со включенной опцией Ethernet-МОСТ (BRIDGING).

Вопрос

Машины в одном сегменте не видят другой сегмент даже при помощи ping!

Ответ

Включили ли вы мост командой ``brcfg -ena''? (brcfg должен вывести сообщение ``bridging is ENABLED'')

Установили ли вы интерфейсы в режим "promisc"? (используйте команду ``ifconfig''. Флаг ``PROMISC'' должен быть установлен на всех интерфейсах.)

Если вы используете адаптеры, поддерживающие разные типы соединений (кабели), убедитесь в том, что выбран правильный. Возможно вам придется использовать программу настройки, поставляемую вместе с картой.

Вопрос

У меня не работают команды telnet/ftp с машины с мостом! Почему?

Ответ

Это происходит потому, что ни один интерфейс на мосте не имеет IP-адреса. Мост должен быть прозрачен для сети.

Вопрос

Как нужно настраивать маршрутизацию в мосте?

Ответ

Никак! Все маршрутизация автоматически настраивается ядром. Чтобы узнать ethernet-адреса, обрабатываемые мостом, используйте программу brcfg в режиме отладки:

brcfg -deb

Вопрос

Мост вроде бы работает, но почему "traceroute" не показывает мост, как часть пути соединения?

Ответ

"Traceroute" не должен показывать мост, как часть пути соединения, из-за специфической сути самого моста. Мост не должен быть виден сети.

Вопрос

Нужно ли включать опцию IP_FORWARD при сборке ядра?

Ответ

Нет. Код моста в ядре работает на уровне транспорта пакетов. IP_FORWARD предназначен для шлюзов, в которых каждому интерфейсу назначается IP-адрес.

Вопрос

Почему физические ethernet-адреса интерфейсов идентичны (так показывает программа ``brcfg'')? Не должны ли они различаться?

Ответ

Нет. Каждый интерфейс на мосте получает одинаковый адрес от кода управления мостом в ядре.

Вопрос

Опция "Ethernet-мосты (Bridging)" не появляется при конфигурировании ядра. Как же мне ее включить?

Ответ


В процессе конфигурирования ядра ответьте "Да" (Y) на вопрос "Запрашивать установку экспериментальных и/или не полностью готовых частей кода/драйверов" (Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]".



Вопрос

Большое количество хабов (4 и больше), соединенных последовательно один за другим, вызывают задержки в сети ethernet. Какой эффект произведет мост на сеть, в котором используется несколько хабов?

Ответ

Мост аннулирует эффект нескольких хабов. Мост обрабатывает пакеты по-другому, не так как хаб, поэтому не может вызвать проблем с задержками.



Вопрос

Может ли мост работать между 10- и 100-мегабитным сегментами? Замедлит ли подобная конфигурация трафик на быстром сегменте?

Ответ

Да, мост может соединить 10- и 100-мегабитные сегменты. Так как сетевая карта на быстрой части сети поддерживает 100 Мбит, TCP занимается всем остальным. Пакеты, идущие с хоста в 100-мегабитной части сети на хост, находящийся в 10-мегабитной части, идут, конечно, со скоростью 10 мегабит. На трафик, идущий внутри 100 мегабитной части сети (включая трафик через мост из 100Мб в 100Мб сегмент) медленная сеть влияния не оказывает.




Что?


Мост - это интеллектуальное соединение между двумя сетевыми картами. Firewall - это интеллектуальный изолятор.



Дополнительная маршрутизация


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



Дополнительные проверки


Проверьте, различается ли трафик на интерфейсах:

tcpdump -i eth0 (в одном окне) tcpdump -i eth1 (в другом окне)

Вы должны привыкнуть использовать tcpdump, чтобы искать то, чего не должно быть или искать отсутствие того, что быть должно.

Последите за пакетами, идущими, например, через мост на вторую карту из внутренней сети. Ниже я слежу за пакетами, идущими от машины с адресом .22:

tcpdump -i eth1 -e host 192.168.2.22

Затем выполните команду ping от хоста .22 к маршрутизатору. Вы должны увидеть пакеты в окне tcpdump.

На этот момент у вас должен быть настроен и работать мост с двумя адресами. Проверьте возможность ping на них снаружи и изнутри сети, затем испробуйте telnet, ftp и т.п. с разных сторон.



Исключения для адресов


Все исключения этому общему отрицанию я должен поместить до установки основного правила.

Машина, работающая в качестве firewall во внутренней сети, будет иметь некоторые привилегии. Без особого разрешения будет запрещено входить в машину, использующую firewall, но с этим разрешением им можно общаться с внешним миром.



Исключения для протоколов


Я буду облегчать правила протокол за протоколом. Первое, что я хочу сделать - разрешить ping снаружи внутрь и получать ответ, поэтому я добавлю правило:



Испытания


Если у вас до сих пор все работает и ничего не сломалось, испробуйте свой конфигурационный скрипт - выключите обе карты и запустите скрипт:



Как?


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

Я предполагаю, что код для мостов лежит чуть выше, чем уровень драйвера физического устройства, а код firewall-ов лежит еще выше, поэтому мосты и firewall-ы могут эффективно работать, потому что "соединены последовательно", а не "параллельно" (ох)!). Диаграмма:

-> Вход моста -> Вход firewall -> Ядро -> Выход firewall -> Выход моста ->

Не существует другого приемлемого способа объяснить, как машина может быть и "проводником" и "изолятором" одновременно. Существуют, однако, некоторые хитрости, о которых я скажу немного позже. В общих словах - вы хотите маршрутизировать пакеты, которые должны обрабатываться к тому же и firewall-ом. В любом случае, у меня все это работало прекрасно. Вот, что вам надо сделать...



Конфигурация моста


Вставьте в ваш конфигурационный скрипт строку, разрешающую работу моста:



Конфигурация загрузки


В литературе, упомянутой выше, вы прочтете, что вам надо подготовить ядро к обнаружению второй сетевой карты в процессе загрузки, добавив в ваш файл /etc/lilo.conf, и затем перезапустив lilo:



Литература для предварительного прочтения.


Прочтите HOWTO: Несколько Ethernet-карт, и вы найдете там несколько советов о том, как заставить работать несколько сетевых карт одновременно.

Более подробные советы по "магии загрузки системы", которая может понадобиться, вы найдете в HOWTO: Приглашение системы при загрузке.

Конечно можно обойтись без чтения HOWTO: Сеть-2, хотя это очень хороший и объемный труд, и вы сможете почерпнуть из него все необходимые детали.



Мини-HOWTO: Совместное использование мостов и Firewall в Linux


Peter Breuer
ptb@it.uc3m.es


Перевод: Станислав Рогин, ASPLinux



Настройка сетевых карт


Достаточно сетевых настроек, но, так как мы устроили мост, то необходимо воспринимать на обеих картах пакеты, которые направлены не нам. Следующие строки необходимо поместить в файл настройки сети.



Основное правило


Я хочу отрезать внешний мир от моей сети и не более того, поэтому мое последнее (воспринимаемое по умолчанию) правило будет следующим - firewall должен игнорировать любые пакеты, идущие из внутренней сети во внешний мир. Я поместил все правила в файл /etc/rc.d/rc.firewall и запускаю его из /etc/rc.d/rc.local в процессе загрузки.



Почему?


Мост вам может понадобиться, если у вас имеется несколько компьютеров, и вы хотите:

сэкономить на покупке хаба, если у вас есть еще одна запасная сетевая карта.

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

избежать проблем с поддержкой в будущем, когда все изменится!

"Несколько компьютеров" - это минимум 3 рабочих станции, которые занимаются маршрутизацией, мостами, или просто часто переносятся из одной комнаты в другую! Вам может также понадобиться мост, если вам просто интересно, что же он на самом деле делает. Мне мост потребовался по 2-ой причине.

Если у вас действительно возникла 1-ая проблема, то вы один из немногих. Прочтите Howto: Сеть-2 и HOWTO: Последовательные порты, и вы, возможно, найдете там советы получше.

Firewall может вам понадобиться, если:

Вы пытаетесь защитить сеть от доступа извне, или

Вы хотите запретить доступ к внешнему миру изнутри.

Как ни странно, здесь меня также заинтересовал второй аспект. В нашем университете существуют правила: мы не должны быть провайдером интернета для студентов.



Предварительные проверки


Вы уже собрали IP-переадресацию и маскарадинг в ядро, поэтому проверьте, находится ли firewall в его стандартном (разрешающем) состоянии командой



Программы


Возьмите утилиту настройки мостов с домашних страниц Alan Cox. Это та же ссылка, что и в документе Chris. Я просто не знал, что это ftp, а не http URL ...



Программы и дополнительная литература


Вы должны прочитать HOWTO: Firewall.

Там сказано, что вам понадобится утилита ipfwadm, если у вас ее еще нет. Существуют, правда, и другие, но как я начал использовать ipfwadm, так на нем и остановился. Он достаточно удобен и прост! Вы всегда знаете, что конкретно он делает.



Проверка


Вам, наверное, надо будет проверить работу telnet, rlogin и ping снаружи. Изнутри вы должны смочь произвести ping наружу. Вы также должны иметь возможность команды telnet на firewall-машину изнутри сети, а на самой этой машине должно быть возможно все.

Вот и все. Далее вам, наверно, стоит узнать подробнее про rpc/Yellow Pages и работу с файлом паролей. Сеть с firewall должна работать так, чтобы обычные пользователи не могли войти в firewall (если они смогут зайти в него, они смогут выбраться наружу). Хороших вам HOWTO!



Сетевая маршрутизация


Вот здесь как раз и всплывает подводный камень схемы мост+firewall: нельзя отфильтровывать пакеты, которые не прошли через маршрутизацию. Нет маршрутизации - нет firewall. По крайней мере, это так в ядре версии 2.0.30 и более новых. Фильтры firewall очень близки и пересекаются с кодом ip-переадресации.

Это, однако, не означает, что мост не будет работать. Вы можете устроить мост между двумя картами и отфильтровывать потоки с третьей. Вы можете иметь, например, две карты и включить фильтры firewall-а на обе, обрабатывая пакеты с внешнего IP, например, ближайшего маршрутизатора, если он направляет все пакеты только на одну вашу карту.

Другими словами, чтобы настроить firewall, необходимо точно знать и контролировать назначение конкретных пакетов.

У меня имеется небольшая сеть с машинами, подключенных к хабу, включенному в мой eth0, поэтому конфигурируем эту сеть:



Сетевые адреса


Chris говорит, что мост не должен иметь IP-адреса, но я опишу прямо противоположный вариант.

Если вы собираетесь использовать свою машину для подключения к сети, то вам понадобится IP-адрес. Необходимо проверить, нормально ли настроено устройство обратной петли, чтобы программы могли общаться с тем, с чем они предполагают это общение возможным. Если устройство обратной петли выключено, то DNSили другие сетевые сервисы могут отказать. Прочтите "HOWTO: Сеть-2", но скорее всего, у вас эта часть стандартной конфигурации должна уже присутствовать: