Nejčastěji odpovídající uživatel
terminál, cpu, jádra a thready

Dotaz
-
Mám server Windows 2008 (R1).
Máme síťový program . nazvěme jej program.exe.
Server pracuje jako terminálový.
K serveru se připojí 5 uživatelů a spustí si program.exe.
Ve správci úloh vidím 5x spuštěný program.exe ( pokaždé jiný uživatel).
A ptám se takto:
- Jak funguje přidělování HW prostředků procesoru (jader, threadů) jednotlivým uživatelům ?
- Budou všechny spuštěné instance programu Program.exe běžet na jednom jádře nebo mohou běžet (pro jednotlivé uživatele) na různých jádrech ?
- Pokud můžou běžet na různých jádrech – jak mám nastavit aby „uživatel 1 pokaždé když se připojí používal jádro 1“ ,a podobně uživatel jádro 2, už. 3 jádro 3 atd ?
Prosil bych o nějakou přesnou specifikaci jak toto správně identifikovat a případně nastavit. Mám CPU Xeon se 4 jádry a hyperthreadingem (ve správci úloh se tváří jako 8 oken grafů výkonu CPU) a mám pocit že nevyužíváme výkon CPU přes všechny jádra - jakoby program.exe běžel v jednom jádře pro všechny uživatele (=celkové zatížení vidíme max 25%, což je jedno jádro na 100% a ostatní nedělají nic). Ví někdo jak to přesně funguje ?
Odpovědi
-
Ad1: procesor se neprideluje uzivatelum, ale procesum a jejich threadum = kazdy uzivatel muze mit proces na vsech jadrech
ad2: tezka odpoved. za rozdelovani zateze je teoreticky zodpovedny OS. Nicmene je mozne nastavit konkretnimu procesu tzv. afinitu = priradit jen konretni jadra. Afinitu lze priradit zvenci, napr. pres taskManager, nebo primo programnovym kodem aplikace.
ad3: teoreticky ano. zde http://blog.tune-up.com/windows-insights/assign-processor-affinity-to-improve-performance/ mate obsahlou stat, jak na to. Takze si umim predstavit spousteci script, ktery bude pri kazdem spusteni cyklovat afinitou pres jednotliva jadra. Otazkou je, zda se afinita prirazuje procesu, nebo "EXE jmenu". Netusim, nezkousel jsem nikdy na vice stejnych spustenych procesech. Zkuste, uvidite.
Zkouseli jsme najit nejaky jednoduchy zpusob, jak zjistit na jakem jadre dany proces bezi. Kolega po chvili luxovani nasel CPU Control na http://www.koma-code.de/?option=com_content&task=view&id=88&Itemid=93
- Upravený Miroslav Tiser pátek 12. července 2013 8:28 edit
- Označen jako odpověď Milos PuchtaModerator pondělí 2. září 2013 16:46
-
Ahoj Ivane,
na jakém jádře běží aplikace můžeš zjistit například s pomocí aplikace Process Explorer v15.31 http://technet.microsoft.com/cs-cz/sysinternals/bb896653
případně zkus další nástroje
http://technet.microsoft.com/cs-cz/sysinternals/bb795533
Michal Zobec | IT Consultant, Lightning Group Company | Michal Zobec Blog | Virtuální PC Blog | Můj profil na LinkedIn
V případě, že se vám zdají moje příspěvky užitečné, označte je prosím.
Pokud vám moje příspěvky poskytly řešení vašeho problému, označte je jako odpovědi.- Označen jako odpověď Milos PuchtaModerator pondělí 2. září 2013 16:46
Všechny reakce
-
Ad1: procesor se neprideluje uzivatelum, ale procesum a jejich threadum = kazdy uzivatel muze mit proces na vsech jadrech
ad2: tezka odpoved. za rozdelovani zateze je teoreticky zodpovedny OS. Nicmene je mozne nastavit konkretnimu procesu tzv. afinitu = priradit jen konretni jadra. Afinitu lze priradit zvenci, napr. pres taskManager, nebo primo programnovym kodem aplikace.
ad3: teoreticky ano. zde http://blog.tune-up.com/windows-insights/assign-processor-affinity-to-improve-performance/ mate obsahlou stat, jak na to. Takze si umim predstavit spousteci script, ktery bude pri kazdem spusteni cyklovat afinitou pres jednotliva jadra. Otazkou je, zda se afinita prirazuje procesu, nebo "EXE jmenu". Netusim, nezkousel jsem nikdy na vice stejnych spustenych procesech. Zkuste, uvidite.
Zkouseli jsme najit nejaky jednoduchy zpusob, jak zjistit na jakem jadre dany proces bezi. Kolega po chvili luxovani nasel CPU Control na http://www.koma-code.de/?option=com_content&task=view&id=88&Itemid=93
- Upravený Miroslav Tiser pátek 12. července 2013 8:28 edit
- Označen jako odpověď Milos PuchtaModerator pondělí 2. září 2013 16:46
-
Ahoj Ivane,
na jakém jádře běží aplikace můžeš zjistit například s pomocí aplikace Process Explorer v15.31 http://technet.microsoft.com/cs-cz/sysinternals/bb896653
případně zkus další nástroje
http://technet.microsoft.com/cs-cz/sysinternals/bb795533
Michal Zobec | IT Consultant, Lightning Group Company | Michal Zobec Blog | Virtuální PC Blog | Můj profil na LinkedIn
V případě, že se vám zdají moje příspěvky užitečné, označte je prosím.
Pokud vám moje příspěvky poskytly řešení vašeho problému, označte je jako odpovědi.- Označen jako odpověď Milos PuchtaModerator pondělí 2. září 2013 16:46
-
Tak to se MZ ptam, jak. Bud jsem slepy, nebo hloupy, ale ja to v processExploreru nenasel.
- Upravený Miroslav Tiser pátek 12. července 2013 8:40 edit
-
Zatím mám nastaveno vše default. Program.exe tedy může používat všechna jádra (ve správci úloh - spřažení - má zatrženy všechny CPU). Nicméně si kladu otázku zda to opravdu dělá to co má. Nastavení Afinity pro konkrétní uživatele bych použil až kdyby nebylo jiného řešení. A ten program z koma-code.de jsem zkoušel na NB kde mám W8 - vidím ale jen procesy a můžu nastavit na jakých jádrech jim povolím běžet, nevidím však informaci na jakém jádře to běží teď. A na W2008 standart to sice nainstaluju, ale procesy nevidím vůbec žádné. Jestli to nemá nějaké omezení že pro servery to není určeno (serverové OS nejsou v seznamu)...
-
ahoj Mirku, díky za upozornění. Kdysi jsem si ověřoval jestli jedna aplikace využívá více procesorů a na kterých běží. myslel jsem že to byl Process Explorer, teď jsem to hledal a taky nemůžu najít.
tak beru zpět :) bohužel si nemůžu vzpomenout, kterou utilitkou jsem to zjišťoval :(
Michal Zobec | IT Consultant, Lightning Group Company | Michal Zobec Blog | Virtuální PC Blog | Můj profil na LinkedIn
V případě, že se vám zdají moje příspěvky užitečné, označte je prosím.
Pokud vám moje příspěvky poskytly řešení vašeho problému, označte je jako odpovědi.