Duże zużycie CPU w systemie

0

W moim hostingu Web API czasami wyrzuca błąd witryny:

Restart aplikacji w zwiazku ze zbyt duzym zuzyciem CPU na danym systemie.

Aplikacja tworzy kilka tasków na raz przez wykorzystanie Task.Run i Task.WhenAll, ilość utworzonych tasków jest kontrolowana przez SemaphoreSlim.

Poza zmniejszeniem ilości równoległych tasków, wykupieniem lepszego hostingu, optymalizacją kodu i wypłaszczeniem krzywej ( ͡° ͜ʖ ͡°) użycia CPU,

czy macie jeszcze jakieś pomysły jak mógłbym kontrolować użycie CPU przez aplikację na serwerze?

1

Ale potrzebna ci ta moc obliczeniowa czy coś się kręci w kółko niepotrzebnie?
Bo jeśli to zamierzone to może wykup hosting na którym faktycznie można używać procka :)

0
Azarien napisał(a):

Ale potrzebna ci ta moc obliczeniowa czy coś się kręci w kółko niepotrzebnie?

Moc potrzebna, bo non stop są wysyłane zapytania i przetwarzane odpowiedzi, choć nic się nie stanie jak aplikacja będzie liczyła wszystko trochę dłużej, więc rozważam ograniczenie ilości odpalonych zadań w jednym czasie. Ciekaw jestem czy da się jakoś sensownie kontrolować użycie procka i dynamicznie zmieniać przepustowość w SemaphoreSlim. Jak kiedyś bawiłem się danymi procesu, to bodajże trzeba było wiedzieć ile jest rdzeni.

0

Może najpierw poszukaj w jakimś faq albo napisz do supportu w jaki sposób liczą "zbyt duże zużycie CPU", bo bez tego to trochę błądzenie po ciemku.

0

Restart aplikacji w zwiazku ze zbyt duzym zuzyciem CPU na danym systemie.

serio takie cuda? :D

1

Na bieda-hostingu provider zaklada ze Twoja apka albo uzywa bazy, albo sieci, albo plikow i cpu ma zwykle niskie.
Poza tym masz tam pewnie vcpu i provider nie potrafi / nie chce rozdzielac rowno procka na wszystkie konta.
Wiec zapychasz mu maszyne.
Heurystyka ze jak cos jest 100% cpu to ubic/zrestartowac jest bardzo popularna bo nie wymaga kontaktu softu providera z apka.

W Twoim przypadku masz pewnie jakies aktywne czekanie albo odpaliles "drugie Allegro" na hostingu za 30zl/rok.
Potestuj apke lokalnie. Doprowadz ja do jakiegos sensownego wykorzystania cpu i/lub pamieci.
Taki maks maksow to powinno byc 50% zasobow na maszynie developerskiej (chyba ze odpalasz folding@home na hostingu to...przepraszam).

0

Po co Ci task.run? Masz gdzies jakas petle while w tych taskach?

0
mad_penguin napisał(a):

Może najpierw poszukaj w jakimś faq albo napisz do supportu w jaki sposób liczą "zbyt duże zużycie CPU", bo bez tego to trochę błądzenie po ciemku.

W odpowiedzi dostałem:

Jeżeli witryna w ciągu 5 minut z odczytami co minutę zużywa średnio więcej niż 10% mocy procesora danego systemu to jest ona restartowana.

0

Jeżeli witryna w ciągu 5 minut z odczytami co minutę zużywa średnio więcej niż 10% mocy procesora danego systemu to jest ona restartowana.

Taka prośba - napisz nam co to jest za wspaniały dostawca, żeby nikt inny nie wpakował się w takie szambo. No chyba, że to usługa za 5pln miesięcznie, to jeszcze można wybaczyć ;)

0

@cerrato:

No chyba, że to usługa za 5pln miesięcznie, to jeszcze można wybaczyć

Przecież za 10-15zł możesz kupić VPSa bez takich niespodzianek :o

chociaż to jest 2 razy drożej...

0

@WeiXiao: tak, ale przy VPS wszystko masz na głowie -konfiguracja, updated, zabezpieczenia itp. czasami zwyczajnie nie ma to sensu, szkoda czasu na tą otoczkę

0
WeiXiao napisał(a):

@cerrato:

No chyba, że to usługa za 5pln miesięcznie, to jeszcze można wybaczyć

Przecież za 10-15zł możesz kupić VPSa bez takich niespodzianek :o

Jasne. Jak kiedyś znajdę więcej czasu na naukę konfiguracji i jak wszystko poinstalować na VPS, to chętnie skorzystam :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1