Загрузка процессора в Linux распределена неравномерно

Система имеет одно ядро, и если один процесс потребляет все процессорное время, то загрузка процессора покажет 100% использование. Но в случае многоядерных систем не обязательно, чтобы все процессоры использовались для выполнения всех процессов. В таких случаях неравномерная загрузка процессора по всем доступным процессорам является ожидаемым поведением.

Вывод команды htop в Linux

Загрузка процессора неравномерно распределена по всем ядрам

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

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

Окончательный смысл вышеприведенного объяснения заключается в том, что если на одном CPU загрузка процессора составляет 100%, а на остальных процессорах - 20-30%, то это не является проблемой всегда, при условии, что процесс не имеет привязки к определенному CPU.

В общем случае ОС не подразумевает никакого сродства процессора сама по себе. Либо приложение или пользователь должны указать ядру, чтобы оно привязало процесс к определенному процессору или набору процессоров.

Если процесс сталкивается с падением производительности из-за высокой загрузки процессора, то только это должно быть устранено.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий