1

Я запускаю сценарий R, и это на самом деле длинный цикл.

Вот скриншот команды "top". Вы можете видеть, что он говорит, что R использует 100% CPU, но в верхней строке это говорит о 4,2% использования для пользовательских процессов. Что это значит? Означает ли это, что процессор имеет несколько ядер, а я использую только одно?

1 ответ1

0

Прежде всего, да - если у вас многоядерная система, вы можете иметь несколько процессов на 100% (список процессов показывает использование теоретического одноядерного процессора) или для многопоточных процессов вы можете иметь один процесс выше 100%. Общее использование ЦП может составлять 25%, 50% и т.д., Поскольку верхним значением по умолчанию является то, что первые цифры ЦП являются совокупностью всех ЦП в системе. Вы получите лучший обзор, если вы нажмете 1 с максимальным запуском - он разделит каждый процессор.

С учетом вышесказанного также важны регистры us(er), sy(stem), ni(ce) и id(le). Программа R, похоже, не забивает ЦП в цикле, и поэтому ЦП находится в основном в режиме ожидания. Я не очень знаком с R - вы можете добавить некоторую отладку, чтобы увидеть, что она ждет, если вы можете оптимизировать ее, чтобы лучше использовать процессор (при условии, что вы стремитесь к тому, чтобы он был привязан к процессору). Точно так же у вас может быть процесс, забивающий диск и имеющий низкий процент пользователей, но высокий показатель Wa (it), пока вы ожидаете перелистывания данных на / с диска.

Если бы R в цикле непрерывно выполнял вычисления / сортировки или подобное, то это сместило бы общее использование ЦП в корзину пользователя (или, если вам понравился процесс, оно переместилось бы в хорошую корзину). Системная корзина может увидеть всплеск, если вы выполняете большие операции сканирования и сортировки в памяти (хотя тогда это не обязательно будет назначено процессу в списке). Хотя сейчас, похоже, ваша система загружена текущим циклом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .