CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Как разделяют пингвинов

Сергей ЯРЕМЧУК grinder@ua.fm

Окончание, начало см. в МК № 8-11 (231-234).

К сожалению жесткий диск не резиновый и не может вместить все, что хочется на него записать, поэтому очень часто просто необходимо узнать, сколько осталось на нем свободного места. В таком случае самым простым вариантом будет воспользоваться консольной утилитой df (disk free):

Без аргументов утилита выдает отчет обо всех смонтированных файловых системах, по умолчанию в GNU-версии размер выдается в блоках по 1 Кб. Утилита имеет большое количество опций, но я чаще всего пользуюсь двумя: -Т выводит также тип файловой системы (берется, как правило, из /etc/mtab), -h (human-readable) выдает более привычный формат. Иногда для получения более достоверной информации можно воспользоваться опцией -sync, вызывающий сброс системного кэша. Естественно, в данном случае не обошлось без различных фронт-эндов, их множество в Gnome. Например, можно вызвать Система > Информация о системе (Рис. 1) или же просто воспользоваться gtop (Рис. 2). В KDE их тоже предостаточно —KdiskFree (kdf) (Рис. 3), Системные > Системный монитор (ksysguard) (Рис. 4) или же просто Центр Управления во вкладке Сведения о системе > Блочные устройства или Разделы.

Рис. 1. Система > Информация о системе   Рис. 2. gtop

Рис. 3. KdiskFree (kdf)   Рис. 4. Системные > Системный монитор (ksysguard)

Но выдаваемой df информации бывает недостаточно, иногда требуется более полная информация об используемом дисковом пространстве — в этом случае на помощь приходит утилита du (disk usage). Она позволяет узнать размер дискового пространства, занимаемый каждым каталогом или файлом. Запущенная без аргументов команда выдает список всех файлов текущего каталога. Программа имеет множество опций, все они описаны в соответствующем man’е. Я наиболее часто пользуюсь -h (назначение то же, что и в df) и -с — выводит только окончательный результат для указанных аргументов, иначе будет выведен отчет о каждом встреченном файле:

Конечно же, никто не мешает посмотреть размер файла с помощью подпункта Свойства контекстного меню Konqueror или в MC, но консольные утилиты удобны тем, что их можно использовать в скриптах, да и работают они побыстрее.

Следующей утилитой будет hdparm, которой все же желательно воспользоваться, так как настройки работы жесткого диска, по умолчанию устанавливаемых дистрибутивом, далеки от оптимальных, в связи с чем часто приходят письма, что, мол, диск о-о-очень тормозит под пингвином. С помощью же данной утилиты можно выжать максимальную производительность своего диска, но предупреждаю: действуйте очень осторожно, это как раз тот случай, когда лучше недобдеть чем перебдеть. Все я вам рассказать не смогу, лучше почитайте подшивку МК о различных режимах работы IDE-дисков для общего понимания процесса. Для начала необходимо получить полную информацию о жестком диске.

Теперь, запустив команду без параметров, узнаем, какие параметры уже установлены:

Для установки максимального числа одновременно считываемых секторов необходимо воспользоваться опцией -m:

I/O support может быть трех режимов: 0-16 бит, 1-32 бит и 3-32 синхронный. В большинстве случаев максимальное быстродействие достигается установкой режима 1. Режим 0 можно оставить разве что для очень старых дисков, а 3 — для отдельных марок чипов. DMA устанавливается опцией -d (1 — вкл/0 — выкл)

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

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

А вот режимы PIO и DMA устанавливаются с помощью одного и того же флага -Х. Использовать данный ключ нужно очень внимательно, устанавливать только реально поддерживаемые диском режимы, а то можно спокойно потерять все данные. Так, для установки выбранного режима PIO необходимо добавить к числу 8 требуемый номер режима. Например, для PIO2 команда будет такая:

где 10=8+2 режим. Аналогично для mdma (multiword DMA) используется начальное число 32 (плюс номер режима), а для UltraDMA начальным будет число 64. Например, для установки UltraDMA5 вводим такую команду:

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

Hdparm — мощная утилита, имеющая множество параметров, правда, в большинстве своем бесполезных в практическом применении. Из оставшихся интерес представляет разве что параметр -Е для установки скорости CD-ROM приводов, а также -t и -T, позволяющие оценить производительность: первый оценивает скорость считывания из кэша буфера на диск, второй — скорость чтения непосредственно из кэша буфера без доступа к диску.

Также иногда может понадобиться параметр -r, позволяющий установить/снять флаг только для чтения для всего диска сразу, и -f, вызывающий синхронизацию буфера, т.е. сброс данных на диск (также можно вызвать, просто набрав sync). Может показаться, что это очень сложно и уныло, да и еще разбираться надо, проще в Windows воткнуть DMA и забыть, но как видите, данная утилита дает возможность тонко настроить режим работы диска, а если возникают неприятности при работе с максимальными параметрами, то установить такие, чтобы можно было спокойно работать.

Позволю себе привести маленький, но очень показательный пример из личного опыта. Захотелось мне как-то заиметь диск пообъемистей. Без проблем, пошел, купил и установил. Но вся заковырка состоит в том, что мой Quantum (нынче уже Maxtor) поддерживает максимально возможный режим UltraDMA 5, а вот материнка на чипсете ВХ, по старинке, — всего лишь 2. Так вот, установил Linux и с помощью hdparm выставил UltraDMA 2, т.к. все равно выше головы не прыгнешь. Все работало нормально, пока не перешел в «любимую» Windows 98SE. Там, чтобы облегчить жизнь своему диску, поступил аналогичным образом (Система > Свойства > … > DMA (в МЕ это устанавливается автоматически)). Windows, будучи впереди планеты всей, очевидно, вполне справедливо решила (или решил), что самый лучший режим — максимальный. Дальше можно не рассказывать, и о словах, которые я тогда говорил, тоже вам знать не надо. Разрешил эту проблему только с помощью программки, которую нашел на сайте производителя, с помощью которой диск может максимально работать в режиме АТА-33, но потерянные данные уже не вернешь. Так что бывают случаи, когда ручная настройка гораздо лучше автоматической. Тогда, кстати, наверное, и был мной забит самый большой и ржавый гвоздь в крышку с флагом Windows.

Идем дальше. Установленные таким образом параметры будут действительны только в период текущей сессии, после выключения питания или перезагрузки все настройки сбросятся. Для того чтобы задействовать их каждый раз, необходимо занести их в стартовый скрипт /etc/rc.d/rc.local или поместить их в отдельный файл, а в rc.local указать строку для запуска.

Посмотрев в файл /etc/rc.d/rc.sysinit, я нашел следующие довольно интересные строки:

Т.е., у нас не спрашивая, принудительно выключают режим DMA на CD-ROM, ссылаясь на возможные проблемы. Еще ниже есть не менее интересные строки, которые полностью приводить не буду, но суть их такова (опять же для Red Hat и компании). В каталоге /etc/sysconfig/ есть файл-шаблон установок параметров —harddisks. Для того чтобы установить режим для hda-диска, необходимо переименовать его в harddiskhda (cp /etc/sysconfig/harddisks /etc/sysconfig/harddiskhda), после чего можно его редактировать (он, кстати, хорошо комментирован). Так, установить режим DMA можно строкой USE_DMA=1, возможна установка и других параметров (MULTIPLE_IO, EIDE_32BIT, UNMASKIRQ, LOOKAHEAD), а с помощью EXTRA_PARAMS можно установить остальные режимы, например DMA -X66 или -a и -m. Кстати, в AltLinux всем этим заправляет другой скрипт —/etc/rc.d/scripts/idetune, а параметры устанавливаются в файле /etc/sysconfig/harddisk/hd$i, но удобный шаблон, увы, не предусмотрен.

На этом я хотел, собственно, и закончить статью, но в процессе переписки с читателями появилась необходимость осветить еще некоторые вопросы, чтобы полностью закрыть тему. Дело в том, что кроме классических файловых систем Linux поддерживает еще так называемые виртуальные файловые системы devfs, procfs и tmpfs. О devfs я уже говорил в первой части статьи, procfs — это файловая система процессов, о ней также поговорили немного, осталась нетронутой tmpfs, доступная пользователям ядер серии 2.4.х. В двух словах: это RAMDISK-подобная файловая система, использующая для хранения информации оперативную память компьютера (точнее, ОЗУ + swap). Круто, да. Причем эта система не требует предварительного форматирования, т.е. команды mkfs.tmpfs в природе не существует. Если она поддерживается ядром (make хconfig > File systems > Virtual memory file system support), то она УЖЕ готова к использованию, т.е. в большинстве случаев необходимо просто указать точку входа (а может, выхода на поверхность, уж не знаю, как это назвать), с которой будет и общаться пользователь или программа. Создается такая точка все той же командой mount.

После этого можно работать с каталогом /mnt/tmpfs практически так же, как и с обычным диском, кроме двух моментов. Во-первых, размер такой ФС, как вы понимаете, невелик, во-вторых, в случае отключения электричества все, что там было, улетучится вместе с многочасовыми трудами. Но есть и положительные стороны — например, в нее можно смонтировать каталог /tmp, в котором хранятся временные файлы и который все равно очищается в большинстве случаев при запуске (или захламляется всяким мусором). Но все окупается той скоростью, которую может дать tmpfs. Ведь т.к. данная файловая система уже находится в оперативной памяти, то самые медленные операции ввода-вывода здесь происходят практически мгновенно, а если объема ОЗУ будет мало и понадобится использовать swap, то туда в первую очередь будут сбрасываться приложения, в которых система наименее нуждается в данный момент. Поэтому, если есть необходимость в компиляции больших пакетов, или же если вы работаете с музыкой, графикой или видео, то не использовать данную возможность — все равно что таскать щебенку ведрами, когда есть тачка. Опять же, никакой надежды на автоматику, как в Windows: нужна скорость — откусил кусок от оперативки, и работай с ней. Один интересный вопрос возникает при использовании tmpfs. А что будет, если произойдет ее переполнение? Да ничего страшного и не будет. В более новых ядрах при достижении определенного объема информация туда просто перестанет записываться (хотя в первых ядрах серии 2.4.х могут возникнуть проблемы). Но чтобы на всякий случай не доводить до такого, можно с помощью опции size указать максимальный размер при монтировании:

И конечно же, воспользовавшись файлом /etc/fstab, можно монтировать tmpfs при загрузке, посмотрите внимательно там уже есть наверняка такие строки:

или

где /dev/shm — «законное» место данной файловой системы. Чтобы ничего не изменять, я для удобства создал символическую ссылку, которой и пользуюсь в повседневной деятельности:

Вот теперь, пожалуй, и все. Остальное в man’ах и в Интернете. По адресу http://linux.yaroslavl.ru/docs/conf/fs/l-fs_ru/l-fs_ru.htm, можно найти переводы цикла статей Daniel'a Robbins'a, оригинал которых расположен на сайте IBM (http://www-106.ibm.com/developerworks/library/l-fs.html — цикл неокончен, ожидается еще продолжение). И еще новость: заработал, наконец, в полную мощность сайт LinuxBegin, назначение которого — помочь пользователю в освоении этой непростой системы и имеющий к тому же мою самую любимую рассылку по Linux. Адрес такой: http://www.linuxbegin.ru.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov