Skocz do zawartości
Zaloguj się, aby obserwować  
EviL

Sterowanie rdzeniami procesora

Polecane posty

Witam,

Posiadam VPS z 2 procesorami CPU0 speed 1.9GHz, CPU1 speed 1.9GHz na VPS jest zainstalowany debian-6.0-amd64-minimal i chcę zrobić tak żeby np proces X używał 100% CPU1 i tylko CPU1 a proces Z i Y po 25% CPU0 można tak zrobić? Jeśli tak to prosił bym o jakieś wskazówki.


Pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Można by było tak zrobić jeśli miałbyś dostęp do kernela, jego konfiguracji i tego jak działa. Wtedy możesz kontrolować częstotliwość przerwań, a nawet up/down thresholdów.

 

Jaki efekt chcesz osiągnąć? Kernel wie najlepiej jak ma rozdzielać obciążenie. Jeśli aplikacja nie wspiera multi-threadingu i musi działać na 1 wątku to go dostaje, a reszta jest balansowana. Nie widzę żadnego sensu czy zastosowania w tym co chcesz osiągnąć.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Podepnę się do tematu. A jak w przypadku openvz jest, jeśli matki ma 16 wątków, a dla vpsa dajemy 4 wątki. To ma on na np. stałe przypisane takie numery wątków 1,2,3,4 czy np. raz jest to 1,5,8,11?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam,
Dzięki za odpowiedź, a jest chociaż możliwość tylko odpalenia ba danym CPU już bez nadawania ile procent zużycia.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@EviL

Ale powiesz mi po co? Jeśli dana aplikacja działa na pojedynczym wątku i dajmy na to ciągnie 70% to kernel rozdziela resztę obciążenia na drugi wątek aż dojdzie do minimum 70%. Dopiero wtedy może coś tam wrzucić, a jeśli obciążenie tej aplikacji wskoczy powyżej jakiegoś pułapu to tamta druga aplikacja wskoczy niżej.

 

Pytam co chcesz osiągnąć. Jak mi odpowiesz to się do tego ustosunkuje. Ostatnio na moim serwerku testuję sobie CONFIG_NO_HZ_FULL wprowadzone w kernelu 3.10. Ustawiłem sobie cpu0 na przerwania z częstotliwością 100 Hz (normalnie jest 1000), a pozostałe wątki działają na NO_HZ_FULL, czyli nie mają w ogóle przerwań w przypadku działania pojedynczych aplikacji (a żeby być zgodnym ze stanem faktycznym to jest to 1 przerwanie na sekundę, żeby schedulera zadowolić). W ten sposób procesor binduje np. aplikacje działającą na 100% threada (kompilację chociażby) do tego threada i z powodu braku przerwań działa ona o 1% wydajniej. Dodatkowo w IDLE przerwań też nie ma przez co aplikacja szybciej startuje i nie musi czekać tych 0,01 sekundy na kolejne przerwanie.

 

Tak, nie jestem normalny :D. Ale jak się wszystkie takie niewielkie rzeczy weźmie pod uwagę to można uzyskać nawet do 30% więcej wydajności na identycznym sprzęcie. No ale to trzeba się znać, żeby grzebać w kconfigu ;).

Edytowano przez Archi (zobacz historię edycji)

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ę

Zaloguj się, aby obserwować  

×