Интересно, сколько всего данных читает только что установленная ванильная система Linux (например, 32-разрядная CentOS 5.10), чтобы перейти к приглашению оболочки виртуальной консоли? Вы знаете, чтение всех файлов конфигурации, загрузка двоичных файлов, образа ядра и т. Д.
Я ищу оценки по порядку величины. Я знаю, что загрузка Linux сильно различается в зависимости от деталей процесса. Речь идет о 10Мб? 100Мб? 1Гб?
В своих комментариях вы говорите, что оцениваете сетевую загрузку / корневую среду сети.
Первое, что вы должны понять, это нет такого понятия, как "ваниль" - вы не собираетесь запускать CentOS 5.10 прямо из коробки с нулевыми изменениями (если вы думаете, что обманываете себя: NFS Root уже как минимум Strawberry, граничащий с Pistachio).
Если вы хотите получить ответ ваша конкретная среда (что действительно имеет значение) вам нужно будет настроить сервер NFS и клиентский компьютер, загрузить его и измерить:
Оба значения будут критически важны для производительности. Вероятно, вы также захотите настроить несколько клиентов в какой-то момент и смоделировать нормальное использование системы, чтобы увидеть, какой постоянный спрос они предъявляют к вашему серверу / сети 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
Я тестировал это на виртуальной машине 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 секунд.