Назад | Перейти на главную страницу

Сколько данных Linux читает при средней загрузке?

Интересно, сколько всего данных читает только что установленная ванильная система Linux (например, 32-разрядная CentOS 5.10), чтобы перейти к приглашению оболочки виртуальной консоли? Вы знаете, чтение всех файлов конфигурации, загрузка двоичных файлов, образа ядра и т. Д.

Я ищу оценки по порядку величины. Я знаю, что загрузка Linux сильно различается в зависимости от деталей процесса. Речь идет о 10Мб? 100Мб? 1Гб?

В своих комментариях вы говорите, что оцениваете сетевую загрузку / корневую среду сети.

Первое, что вы должны понять, это нет такого понятия, как "ваниль" - вы не собираетесь запускать CentOS 5.10 прямо из коробки с нулевыми изменениями (если вы думаете, что обманываете себя: NFS Root уже как минимум Strawberry, граничащий с Pistachio).

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

  1. Передача (количество)
  2. Пропускная способность (скорость)

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

Смотрите также: Наша серия по планированию мощностей - мы не говорим конкретно о NFS, но применяются общие принципы «Построить, протестировать, усилить».

Установите одну систему, загрузите ее и просмотрите статистику блочного уровня из /sys/block/${DEV}/stat например /sys/block/sda/stat.

Цитата из документация:

Файл статистики состоит из одной строки текста, содержащей 11 десятичных значений, разделенных пробелами. Поля приведены в следующей таблице и более подробно описаны ниже:

Name            units         description
----            -----         -----------
read I/Os       requests      number of read I/Os processed
read merges     requests      number of read I/Os merged with in-queue I/O
read sectors    sectors       number of sectors read
read ticks      milliseconds  total wait time for read requests
write I/Os      requests      number of write I/Os processed
write merges    requests      number of write I/Os merged with in-queue I/O
write sectors   sectors       number of sectors written
write ticks     milliseconds  total wait time for write requests
in_flight       requests      number of I/Os currently in flight
io_ticks        milliseconds  total time this block device has been active
time_in_queue   milliseconds  total wait time for all requests

читать секторы, писать сектора

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

Вы можете использовать эту однострочную строку, чтобы легче узнать количество байтов:

awk '{printf("read %d bytes, wrote %d bytes\n", $3*512, $7*512)}' /sys/block/vda/stat

Результаты для Scientific Linux 6.1 i386

Я тестировал это на виртуальной машине KVM / qemu, работающей Научный Linux 6.1 i386 (похожий на RHEL). Были включены следующие службы: acpid, auditd, crond, network, postfix, rsyslog, sshd и udev-post. Своп находится на отдельном диске, поэтому не учитывается.

Статистика для 85 загрузок, полученная удаленно с помощью SSH через пару секунд после появления приглашения на вход, была:

    Name            Median   Average   Stdev
    -------------   ------   -------   -----
    read I/Os       1920     1920.2    2.6
    read merges     1158     1158.4    1.8
    read sectors    85322    85330.9   31.9
 >> read MiBytes    41.661   41.665    0.016
    read ticks      1165     1177.2    94.1
    write I/Os      33       32.6      1.7
    write merges    64       59.6      7.4
    write sectors   762      715.2     70.9
 >> write MiBytes   0.372    0.349     0.035
    write ticks     51       59.0      17.4
    in_flight       0        0.0       0.0
    io_ticks        895      909.9     57.8
    time_in_queue   1217     1235.2    98.5

Время загрузки было около 20 секунд.