Управление динамическим распределением задач на уровне ОС

“Большие системы” для конечного пользователя означают значительные инвестиции в вычислительные ресурсы, и сразу же возникает вопрос эффективного управления этими мощностями. На этот раз оставим виртуализацию в стороне и рассмотрим динамическое управление ресурсами в пределах одной отдельно взятой операционной системы. Где это необходимо? Примеры:

  • Веб-сервер, поддерживающий несколько экземпляров одного и того же приложения;
  • Сервер, поддерживающий разные приложения (например СУБД и Apache) или HPC-приложения, каждое из которых должно работать с заданными параметрами быстродействия;
  • Сервер, поддерживающий приложения, нагружающие разные ресурсы (подсистемы) этого сервера, но требующие заданный уровень сервиса.

В замечаниях к выпуску Enterprise Linux 5 можно встретить такую фразу:

Новая версия Spacewalk 0.4

На днях вышла новая версия open source решения для обслуживания всего жизненного цикла Linux-инфраструктуры - Spacewalk 0.4. Spacewalk представляет собой открытый по лицензии GPL2 продукт Red Hat Network Satellite Server, имеющий давнюю, с 2001 года, историю разработки.

Основные усовершенствования:

  • интеграция с Cobbler/Koan (о Cobbler я писал в блоге пару недель назад). Требуется версия cobbler >=1.4, которая пока что присутствует в репозитории epel-testing. Предполагается, что Cobbler заменит соответствующую подсистему в Spacewalk, а в дальнейшем, видимо, и в Red Hat Network Satellite Server;
  • начата работа над реализацией доверительных отношений между Организациями и реализацией “общих каналов” программного обеспечения (Multi-Org II);
  • улучшения в поддержке разных архитектур в пределах одного сервера для 64-разрядных систем;
  • Набор новых API (channel.access.*, channel.org.*, package.*);
  • Модули SELinux для компонентов Spacewalk (Ура! Раньше первый пункт при установке звучал как “выключите SELinux” :) ;
  • Поиск по online-документации в Spacewalk. (Мелочь, а приятно);
  • Справочная документация обновлена с учетом последних изменений;
  • Продолжается миграция частей кода с perl на java;
  • Улучшенна интеграция с базовой системой. satellite-httpd удален, поскольку теперь используется стандартный httpd;
  • С момента выхода версии 0.3 исправлено более сотни различных ошибок.

В качестве платформы все еще необходимо использовать RHEL/CentOS/etc, но уже начата работа по созданию репозитория для Fedora 10.

И снова о памяти в Linux - /proc/meminfo

В продолжение поста о команде free, посмотрим на более полный источник об использовании памяти - специальную виртуальную файловую систему /proc, являющуюся общей точкой доступа к структурам данных ядра, а именно - на информацию /proc/meminfo. Вывод команды cat:

[andrey@server1 ~]$  cat /proc/meminfo
MemTotal:      1945312 kB
MemFree:         48980 kB
Buffers:          2248 kB
Cached:         171092 kB
SwapCached:        256 kB
Active:         622380 kB
Inactive:        32504 kB
HighTotal:     1048256 kB
HighFree:         3176 kB
LowTotal:       897056 kB
LowFree:         45804 kB
SwapTotal:     2048276 kB
SwapFree:      2047868 kB
Dirty:            2696 kB
Writeback:         400 kB
AnonPages:      481592 kB
Mapped:         137244 kB
Slab:            34244 kB
PageTables:       7276 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   2433156 kB
Committed_AS:  1277084 kB
VmallocTotal:   114680 kB
VmallocUsed:     14232 kB
VmallocChunk:    99948 kB

Пройдемся сверху вниз с некоторыми комментариями по части из этих значений.

Команда /bin/free “в картинках”

Команда free выводит информацию об общем числе свободной и использованной памяти, включая swap. Для того, чтобы было понятнее, как трактовать вывод команды, на приведенном ниже рисунке я показал результат исполнения команды free в Dom0 на моем рабочем ноутбуке:

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

[andrey@server1 ~]$ free -l
           total    used     free shared buffers  cached
Mem:       1819648 1807228    12420      0   56504 1257716
Low:        738260  728896     9364
High:      1081388 1078332     3056
-/+ buffers/cache:  493008  1326640
Swap:      2048276       8  2048268

Если бы я отдал эту же команду на установленной 64-разрядной ОС, то в строке, относящейся к ZONE_HIGMEM, я бы увидел 0. Обзор модели памяти Linux можно почитать в статье на IBM developerWorks Россия. Если же вы готовы к “глубокому погружению”, то ничего лучше “Ядро Linux. 3-е издание” Бовет, Чезати на русском языке я не видел.

Cobbler: новое видео в Red Hat Magazine

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

Такой способ есть, и он заключается в использовании ПО Cobbler, которое упрощает сетевую установку операционных систем, что особенно необходимо при масштабных инсталляциях, например, в дата-центрах. Вчера в Red Hat Magazine появилось видео-интервью с разработчиком Cobbler - Michael DeHaan.