Почему команда top отображает >80% простоя ЦП, а отдельные процессы используют >80% ЦП?

Нашел решение в мануале:

$ typeset +f
f()
g()
h()
k()

If +f is specified, then a line containing the function name followed by a shell comment containing the line number and path name of the file where this function was defined, if any, is displayed.

0
19.11.2020, 15:35
1 ответ

As you can see, the postgres process is taking up all the CPU.

Нет, он занимает одно ядро ​​процессора -вот что означает 100% в Unix/Linux. И даже это не точно.

В вашем процессе postgres может быть два активных потока, каждый из которых занимает 50% двух разных ядер ЦП, а top/ psсообщит о 100%.

Does it have something to do with different CPU cores?

Да.

As you can see, one of them is totally eaten up by postgres but the rest is empty.

На вашем скриншоте два ядра процессора загружены, одно на 88%, другое на 9%. Их сумма близка к тому, что использует ваш posgres.

Adding more cores won't do anything.

Это зависит от того, однако в вашей конкретной ситуации кажется, что любая рабочая нагрузка, которую вы выполняете, ограничена производительностью однопоточного -ЦП, так что вы правы.

Rather expanding the size of the CPU running the postgres process could potentially lower the CPU percentage it uses?

Я не понимаю, что вы имеете в виду.

2
18.03.2021, 22:48

Теги

Похожие вопросы