Комманда top под Solaris
От: WinnieJayClay Финляндия  
Дата: 17.01.15 23:25
Оценка:
Запускаю top под Solaris, весит java процесс, который в колонке State показывает то один процессор то другой с одной и той же загрузкой ~6%. Это означает что java процесс занимает несколько CPU или просто потоки приложения на другой CPU прыгают по-очереди?
Re: Комманда top под Solaris
От: smeeld  
Дата: 18.01.15 01:12
Оценка: +1
Здравствуйте, WinnieJayClay, Вы писали:

WJC>Запускаю top под Solaris, весит java процесс, который в колонке State показывает то один процессор то другой с одной и той же загрузкой ~6%. Это означает что java процесс занимает несколько CPU или просто потоки приложения на другой CPU прыгают по-очереди?


Исполнение прыгает с одного CPU на другой. Solaris это умеет. Её планировщик изначально писался для исполнения
одного экземпляра ОС на сотнях CPU в SMP системе. Если вкратце, то существует N kernel thread-ов, в их контекстах
исполнения, исполняются M процессов, уровней как user space, так и kernel space, каждый процесс может исполняться одним
или несколькими kernel thread. Kernel thread-ы, назначенные для исполнения процесса, не фиксированы, то есть исполнение
процесса постоянно перекидывается между разними kernel thread-ами. Но каждый kernel thread, привязан к определённому
"букету"-множество CPU, наиболее близких к друг другу в плане доступа к кэшу, см. топологию системных шин с Sparc машинах.
Но ситуацию можно поменять, man psrset. Но может привести к тому, что на 128 процессорной системе, нагруженными будут только
8 из них.
Отредактировано 18.01.2015 1:14 smeeld . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.