На Linux, как сказать, сколько ядер машины активно? Я предполагаю, что тест для этого будет работать для Android тоже. Мне нужно знать, активно ли более одного ядра. Хотелось проверить это, создав процесс, создающий много потоков. Возможно ли для потока запросить, на каком процессоре он работает? таким образом, можно определить, будут ли когда-либо использоваться несколько ядер под большой нагрузкой. Не уверен, что я на правильном пути.
5 ответов
Вы можете использовать top
чтобы перечислить использование каждого ядра. Нажмите 1, если необходимо, чтобы разделить строку ЦП на отдельный ряд для каждого ядра.
Вы также можете добавить столбец, который показывает последнее использованное ядро для каждого процесса. Нажмите f, чтобы открыть список полей, затем j, чтобы активировать столбец "P". Затем нажмите пробел, чтобы вернуться к просмотру в реальном времени.
ps
есть поле с именем psr
которое сообщает вам, на каком процессоре выполняется задание.
Таким образом, вы можете использовать что-то вроде:
ps -e -o psr= | sort | uniq | wc -l
Обратите внимание, что простое выполнение ps
как это, конечно, сделает по крайней мере одно ядро активным.
Вероятно, лучше запустить это:
tmp=/tmp/ps.$$
ps -e -o psr= > /tmp/ps.$$
sort -u "$tmp" | wc -l
rm "$tmp"
таким образом sort
и wc
не увеличивают количество.
htop
Эта команда хорошо работает как в Ubuntu, так и в Centos и графически показывает, сколько процессоров и как они используются.
для сентос:
yum install htop
для убунту:
apt-get install htop
Вы можете использовать cat /sys /devices /system /cpu / возможный или cat /sys /devices /system /cpu / online. В основном это возможно, если у вас есть отдельный процессор для запуска какой-то конкретной программы.