Есть команда vmstat, у неё есть столбец r (runqueue), который можно считать мерой загрузки сервера (load). Ещё есть команда uptime, она выводит на экран среднюю загрузку за 1 минуту (Load-1), за 5 минут (Load-5) и за 15 минут (Load-15).
Для любителей шарад - снимок с реальной системы Linux@x64.
Сравниите значения vmstat-r и load-1.
Какой вывод напрашивается ?
Часто считается, что Load в Линуксе, это синоним vmstat-r.
Т.е. если запустить vmstat 60, то столбец r - это то же самое, что и load-1 в uptime (одноминутное среднее).
Оказалось - нет.
Посмотрим ещё раз:
Среднее арифметическое по столбцу vmstat-r - это 1.8, а load average = 13,6.
Load Average - ближе к значению столбца vmstat-b.
Т.е. при расчёте load average, Линукс складывает процессы, которые на ЦПУ и процессы которые ждут окончания В/В (столбец b).
А потом значение Load мы видим в AWR:
Теперь понятно, что показывает sar -q , когда он показывает разные runq-sz и ldavg-1:
Такой подход (складывать ЦПУ + В/В) - это специфика Линукса.
В больших Юниксах - Solaris, AIX, HPUX - ЦПУ считается отдельно, а В/В-отдельно.
Хотя тут сложно сказать кто больше прав, если процесс часть выделенного ему кванта прожил на ЦПУ, а затем не использовав весь квант времени выполнил В/В и освободил процессор, то в какую статистику записывать такой процесс? в статистику ЦПУ или В/В или в обе?
Man для uptime прямо об этом говорит:
System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.
Procs
r: The number of runnable processes (running or waiting for run time). b: The number of processes blocked waiting for I/O to complete.
Что показывает vmstat-r в разных ОС:
Solaris: run queue - показывает только процессы, стоящие в очереди к процессорам.
Процессы, которые работают на ЦПУ не учитываются. Поэтому vmstat-r на Solaris показывает более низкие значения, чем в других ОС.
Linux: on CPU + run queue - процессы, которые работают на ЦПУ + стоят в очереди к ЦПУ,
т.е. все процессы, которые в состоянии runnable.
AIX: on CPU+run queue.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.