Skocz do zawartości
kamil306

Przydzielanie rdzeni procesora do aplikacji

Polecane posty

niewiem czy w dobrej kategorii pisze ale poszukuje informacji jak np pod jeden rdzen dac mysql po drugi apache itd

 

 

jak to zrobic? czy to samo przy odpaleniu sobie wybiera rdzen?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

a nie lepiej jest jak wszystkie aplikacje działają na wszystkich rdzeniach?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Np. taskset, ale nie wiem jak to będzie działać w przypadku child'ów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

wlasnie niewiem jak to jest, chce sie wlasnie dowiedziec, czy normalnie jak odpalam proces to sobie sam przydziela czy jak to dziala?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

wlasnie niewiem jak to jest, chce sie wlasnie dowiedziec, czy normalnie jak odpalam proces to sobie sam przydziela czy jak to dziala?

 

proces korzysta w całego procesora , czyli zużywa np po kilka % każdego rdzenia

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
proces korzysta w całego procesora , czyli zużywa np po kilka % każdego rdzenia

Brednie..

 

1) Zależy od schedulera, jaki jest aktualnie załadowany w systemie ( chociażby standardowy CFS lub BFS, dostępny po przepatchowaniu ZENem ) jak i samej konfiguracji kernela.

2) Zależy od aplikacji, czy została napisana tak, aby dzielić swoje wątki no i jak dzielić między nie obciążenie, chociażby daemony różnych programów ( MySQL, Apache2) tworzą childy procesu głównego, z których każdy jest dostępny, aby móc wykonać jakieś zadanie/request.

3) Konfiguracja samej aplikacji, m.in maksymalna ilość childów.

 

Jeśli aplikacja nie jest napisana tak, aby się dzielić, to zwyczajnie obciążenie tego jednego procesu będzie, przy braku statycznego dowiązania procesu do rdzenia, latać sobie po nich ( rdzeniach ) tak, aby w miarę wyrównać między nimi obciążenie, lecz nie podzieli obciążenia tego jednego procesu, który żre powiedzmy 70% rdzenia, na dwa po 35%, nijak :-)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli chodzi o MySQL, Apache i większość innych programów, to potrafią z powodzeniem korzystać z wielu rdzeni bez potrzeby jakiegoś specjalnego przypisywania ich do konkretnych CPU.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz przypisać sam proces, a nie aplikację do danego CPU/rdzenia. Jeśli aplikacja startuje nowe procesy, to tylko proces macierzysty zotanie przypisany do wskazanego CPU, reszta według schedulera systemowego.

 

Ale jeśli wystarczyłoby Ci przypisanie samego procesu, to zainstaluj pakiet schedutils

 

Jeśli będziesz chciał przypisać np. proces o ID 12344, wystarczy wykonać:

taskset -c 3 -p 12344

czyli proces o PID 12344 ma być uruchamiany na trzecim CPU/rdzeniu

 

lub

taskset -c 3,5 -p 12344

może być uruchomiony na trzecim i piątym rdzeniu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Trochę odświeżę temat. Dla FreeBSD będzie to cpuset:

 

 cpuset [-l cpu-list] [-s setid] -p pid

Korzystajac z okazji. A zeby jaila przypisac pod konkretny rdzen ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Korzystajac z okazji. A zeby jaila przypisac pod konkretny rdzen ?

 

Do czego potrzebne jest Tobie takie przypisanie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×