Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Dynamicke rozlozeni vykonu CPU mezi dve aplikace

iRoneR54
verified
rating uzivatele
6. 11. 2015 14:16:51
Dobry den
potrebovali bychom radu ohledne toho jak (a jestli) je mozne vyresit rozlozeni vykonu HW ale predevsim samotneho CPU tak aby byl CPU servera vzdy vytizen na 100% a techto 100% bylo dynamicky rozdelovano vzdy podle aktualne situace ovsem s tim ze jedna z tech dvou aplikaci bude mit vzdy vyssi prioritu.
Jde tedy o to ze pokud aplikace 1 je prioritni a v dane situaci musi pouzivat treba 10% vykonu tak aplikace 2 (mene prioritni) bude mit dovoleno pouzit zbylych 90% vykonu na plno.
Pokud se ale situace treba za hodinu zmeni a aplikace 1 bude potrebovat vykon treba 60% tak vykon se automaticky rozlozi v pomeru 60% aplikace 1 / 40% aplikace 2
A takhle by se to menilo vzdy dle aktualni situace.
Je neco takoveho mozny udelat externi cestou aniz by ty konkretni aplikace na to byly predem stavene?
Vim ze asi nam nekdo z Vas odpovi ze se to da resit pres to ze kazde aplikaci urcime pocet vlaken ktery muze pouzivat a tim padem si nebudou "prekazet" ale to prave neni to co potrebujeme protoze kdyz definujeme kazde aplikaci staticky pocet vlaken tak se stane to ze dana aplikace bude mit vuci druhe aplikaci nejake vlakna "rezervovane" ikdyz je v tu chvili nepotrebuje a tudiz je druha aplikace ktera by je mohla potrebovat nevyuzije.
Dekujem za odpoved.
6. 11. 2015 14:16:51
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151307
virtualizace a pro kazdou aplikaci dedikovany virtualni stroj?
6. 11. 2015 15:37:32
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151306
James_Scott
verified
rating uzivatele
(7 hodnocení)
6. 11. 2015 16:40:29
Nebo pokud to bezi jako samostatne procesy,tak zkusit jim nastavovat "nice" hodnoty.
6. 11. 2015 16:40:29
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151305
TomasX
verified
rating uzivatele
(4 hodnocení)
6. 11. 2015 21:18:08
ano, můžeš procesům nastavit prioritu, ale nemáš to pod kontrolou.
O jaké aplikace se jedná a o jaký server?
Pokud jsou to webové aplikace vytížení tvoří mnosžtví požadavků, předřaď tomu load balancer.
Pokud se jedná o dlouhoběžící procesy (například nějací roboti), cgroup umožňuje poměrně slušně nastavit alokaci zdrojů nebo obyčený nice a snižovat prioritu procesu.
Další možnost je nastavit správnou affinitu jader procesoru, kdy na vícejádrovém stroji jasně rozdělíš, které jádro může která aplikace využívat. Na linuxu není velký problém tohle dělat dynamicky a podle potřeby rozdělovat jádra aplikacím podle toho kolik jim zrovna chceš dát prostoru, přesně jak chceš.
Rozepsal bych se více, klidně ti napíšu konkrétní nástroje a postupy, ale i tak, pokud půjdeš do podobného řešení, nebudeš to umět debugovat a nejspíš ti to popadá jak domeček z karet. Nelze již zvýšit výkon serveru?
6. 11. 2015 21:18:08
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151304
iRoneR54
verified
rating uzivatele
7. 11. 2015 15:15:55
Napsal vdusek;1239060
virtualizace a pro kazdou aplikaci dedikovany virtualni stroj?
Dekuji za reakci. Nemuzeme to resit pres VPS protoze aplikace potrebuji vysoky vykon dedikovaneho fyzickyho servru.
Napsal James_Scott;1239089
Nebo pokud to bezi jako samostatne procesy,tak zkusit jim nastavovat "nice" hodnoty.
Urcite to stoji za pokus zkusit to vyresit pres niceness
To nas nenapadlo dekuji.
Napsal TomášX;1239193
ano, můžeš procesům nastavit prioritu, ale nemáš to pod kontrolou.
O jaké aplikace se jedná a o jaký server?
Pokud jsou to webové aplikace vytížení tvoří mnosžtví požadavků, předřaď tomu load balancer.
Pokud se jedná o dlouhoběžící procesy (například nějací roboti), cgroup umožňuje poměrně slušně nastavit alokaci zdrojů nebo obyčený nice a snižovat prioritu procesu.
Další možnost je nastavit správnou affinitu jader procesoru, kdy na vícejádrovém stroji jasně rozdělíš, které jádro může která aplikace využívat. Na linuxu není velký problém tohle dělat dynamicky a podle potřeby rozdělovat jádra aplikacím podle toho kolik jim zrovna chceš dát prostoru, přesně jak chceš.
Rozepsal bych se více, klidně ti napíšu konkrétní nástroje a postupy, ale i tak, pokud půjdeš do podobného řešení, nebudeš to umět debugovat a nejspíš ti to popadá jak domeček z karet. Nelze již zvýšit výkon serveru?
Umeli by ste to navrhnout a optimalizovat dle vyse popsaneho? Venujete se tomu profesionalne?
Pokud mate zajem mohu Vam zaslat podrobnejsi PM.
Zvysit vykon servru po HW strance nyni neni mozne a myslime si ze ani neni nutne protoze stavajici hw by mel postacovat jen je treba spravne rozlozit jeho maximalni vykon. Proto prispevek vyse.
Budeme vdecni za dalsi navrhy a reakce.
7. 11. 2015 15:15:55
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151303
Mel jsem na mysli vlastni vykonny server a na nem provozovat 2 virtualni stroje. O rozdeleni vykonu se pote bude starat vlastni virtualizace.
O jake OS se jedna? Jake to jsou procesy? Cim se ridi prioritizace techto procesu?
7. 11. 2015 15:41:24
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151302
iRoneR54
verified
rating uzivatele
8. 11. 2015 22:07:14
Aha v tom pripade jsem to spatne pochopil a muzeme zvazit i nasazeni tohohle reseni.
Dekuji za upresneni.
Jde o projekt ktery v jine souvislosti jiz byl kratce popsan v tomto vlaknu
S tim rozdilem ze aktualni stav se "kapku" zmenil od popisu ve vyse uvedenem vlaknu.
Ted jde totiz o aplikace ffmpeg = konverter a wowza = streaming. Mezi temito aplikacemi potrebujeme "udrzet" balance tim zpusobem ze neustale bude vyuzivana 100% kapacita CPU.
Prioritni je tedy wowza (aby nedochazelo ke lagovani streamu) a mene prioritni ffmpeg ktery by mel vyuzivat v ramci konvertingu vsechnu kapacitu CPU kterou v te situaci nevyuziva wowza.
Jestli se nam tedy podari dosahnout cile dle prvniho postu v tomto vlaknu budeme moci v klientovem reseni efektivneji transcodovat uploadovane video soubory protoze ffmpeg bude moci konvertovat kazde uploadovane video rychleji a tim se driv uvolni kapacita CPU pro konverting dalsich uploadovanych video souboru aniz by se to negativne projevilo na kvalite jiz probihajicich streamu
8. 11. 2015 22:07:14
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151301
2 virtualni stroje budou sdilet jeden fyzicky HW. Virtualizace se postara o to, ze pobezi oba a fyzicky vykon se mezi ne rozdeli podle jejich potreb. Ale v okamziku, kdy pojede dekodovani videa a bude zaroven vysoky pozadavek na prehravani, tak se muzete dostat do problemu, ze zacnete ztracet na kvalite streemovani. A to je urcite nezadouci. Tudy nejspis cesta nepovede...
Idealne dostatecny vykon fyzickeho serveru na streemovani. K tomu spolecny sitovy disk a druhym strojem provadet dekodovani na tento disk.
Kvalita streamu tak nebude ohrozena a dekodovaci server se vyuzije naplno.
Nenapada mne podle ceho ridit priritu techto dvou paralelnich operaci. :(
9. 11. 2015 01:59:49
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151300
iRoneR54
verified
rating uzivatele
9. 11. 2015 02:39:27
dekuji za reakci.
minimalne vyzkousime niceness nebo cgroup neco z toho by mohlo teoreticky fungovat.
Osobne sazim na niceness.
9. 11. 2015 02:39:27
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151299
Ve vmWare muzete dat prioritu behu virtualnich staroju - ja to bude spolehlive ve Vasem pripade, si netroufam odhadnout.
Obdobne pomoci nice
9. 11. 2015 03:09:52
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151298
TomasX
verified
rating uzivatele
(4 hodnocení)
9. 11. 2015 09:35:24
Ano, použij nice na změnu priority procesu, k tomu je přesně určen a bude ti to fungovat jak potřebuješ. Nezapomeň, že každý převod videa je vlastní proces a ideálně musíš to rovnou přes nice startovat s nižší prioritou. Zbytek je na systému, testuj si to, zkus snižovat prioritu postupně třeba po desítkách, mělo by ti to fungovat přesně jak potřebuješ.
Je naprosto zbytečné přidávat další vrstvu v podobě virtualizace.
9. 11. 2015 09:35:24
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151297
iRoneR54
verified
rating uzivatele
17. 11. 2015 03:26:06
jeste se chci zeptat: Chteli bychom tenhle pozadavek resit pres nice na zaklade Vaseho doporuceni ale nemame s tim nejak moc zkusenosti.
Proto se chci zeptat zda by ste nam mohli navrhnout alespon orientacni hodnoty ktere by mohli fungovat presne tak jak potrebujeme. Chapu ze je to vice ci mene vec testovani a my si to samozrejme pak budeme umet otestovat a pak pripadne hodnoty upravit jen bychom se potrebovali od neceho takrikajic "odrazit".
Dekujeme za pomoc (i tu dosavadni).
17. 11. 2015 03:26:06
https://webtrh.cz/diskuse/dynamicke-rozlozeni-vykonu-cpu-mezi-dve-aplikace/#reply1151296
Pro odpověď se přihlašte.
Přihlásit