GNU/Linux >> Znalost Linux >  >> Linux

Nahoře je uvedeno 100 % využití CPU, ale 50 % jader nečinných?

Abychom rozšířili Maxovu odpověď:Procesory s hyperthreadingem hlásí operačnímu systému dvě jádra, když ve skutečnosti existuje jediné fyzické jádro. Linux vidí 4 jádra, ale váš procesor má 2 fyzická jádra.

Fyzické jádro má pokročilé možnosti plánování a několik dalších tranzistorů pro zpracování druhého vlákna, ale pro mnoho aplikací náročných na procesor neposkytuje hyperthreading skutečnou výhodu.

V mém oboru srovnáváme aplikace, které poběží na systému, a deaktivujeme hyperthreading v systému BIOS, pokud to brání výkonu.

EDIT:

Pokud načtu polovinu jader pomocí cat /dev/urandom > /dev/null zde je to, co dostanu na moderním Xeonu se systémem CentOS 6:

top - 19:32:38 up 1 day,  8:17,  3 users,  load average: 12.13, 8.73, 4.07
Tasks: 694 total,  13 running, 681 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us, 50.4%sy,  0.0%ni, 49.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  49552656k total,  2693452k used, 46859204k free,   186448k buffers
Swap: 15999992k total,        0k used, 15999992k free,   469560k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                           
21193 root      20   0 98.5m  560  452 R 100.0  0.0   6:23.31 cat                                                                                               
21194 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.76 cat                                                                                               
21195 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.38 cat                                                                                               
21201 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.98 cat                                                                                               
21202 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.62 cat                                                                                               
21203 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.36 cat                                                                                               
21206 root      20   0 98.5m  560  452 R 100.0  0.0   6:20.43 cat                                                                                               
21187 root      20   0 98.5m  560  452 R 99.6  0.0   6:24.45 cat                                                                                                
21204 root      20   0 98.5m  560  452 R 99.6  0.0   6:21.03 cat                                                                                                
21205 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.73 cat                                                                                                
21213 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.09 cat                                                                                                
21214 root      20   0 98.5m  560  452 R 99.6  0.0   6:19.70 cat

Je to už více než čtyři roky, a abych byl spravedlivý, úplně jsem na tuto otázku zapomněl a vrátil jsem se jen proto, že jsem viděl, že jsem dostal Významnou otázku odznak za to.

Problém byl tangenciálně související s hyperthreadingem, ale jak jsem neustále upozorňoval respondenty, není příčina 50% volnoběhu.

Příčina měla co do činění s nevhodně nakonfigurovanou konfigurací dynamických tiků jádra. Spouštěl jsem Gentoo a používal jsem vlastní jádro. Poté, co jsem někdy v polovině roku 2012 upgradoval jádro, se problém vyřešil sám.


Linux
  1. Detekce Process Eating CPU bez:Top, Htop, Ps?

  2. kipmi0 IPMI Kernel Helper 99 % / 100 % vysoké využití CPU (ale nízké průměrné zatížení)

  3. Proces vmlinuz běží na 100% CPU

  1. Proč je využití CPU hlášeno top v Linuxu přes 100 %?

  2. ps a top dávají různé využití CPU

  3. base64 -d dekóduje, ale říká neplatný vstup

  1. Najděte 10 nejběžnějších procesů podle využití paměti a CPU

  2. Odstraňte problémy s vysokým využitím procesoru na Windows Server

  3. Získat využití CPU v shell skriptu?