Ilosc rdzeni/watkow procesora a ilosc odpalonych programow w nodejs

0

Zalozmy ze mam program napisany w nodejs, ktory komunikuje sie z jakims serwerem i cos oblicza.
Zalozmy ze mam 4rdzeniowy procesor z 8 watkami.
Jak wiemy node wykorzystuje 1 watek.

Ile moge uruchomic takich programow node`owych na tym procku, zanim odczuje spadek wydajnosci?
Czy to jest tak ze jesli uruchomie 2 programy to juz obydwa beda pracowaly wolniej mimo ze procek ma 4rdzenie czy moge uruchomic az do 8 programow, zanim pojawi sie spadek wydajnosci?

0

Jak wiemy node wykorzystuje 1 watek.

No nie wiem czy wiemy, w Node masz od jakiegoś czasu stabilne worker threads i możesz programować wielowątkowo. Ogólnie też Node jednowątkowe nigdy nie było, masz tradycyjnie jeden główny wątek dla JSa, ale obsługa IO (oraz crypto itp.) od zawsze była wielowątkowa (zarządzana automatycznie)

ile moge uruchomic takich programow node`owych na tym procku, zanim odczuje spadek wydajnosci?

Generalnie nie więcj niż liczba wątków procesora (licząc wspólnie z workerami), ale to też zależy - jak masz pełne obłożenie procesora to tak, ale jeżeli niektóre wątki się nudzą czasami to możesz mieć np. więcej workerów pod konkretne taski.
Jak twoja aplikacja to głównie IO, to nawet wiecej niż jeden proces w klastrze może ją spowolnić (narzut na pzydzielanie requestów do procesów, zabieranie czasu procesora wewnętrznym wątkom libuv itp). Zależy czy stawiasz wbudowany klaster czy osobne procesy i zewnętrzy load-balancer, AWS/Azure itd.
Zalezy od tego co robi twoja aplikacja i gdzie są wąskie gardła (czy lepszy worker thread czy child process czy mieszanka obu, ile i w jakich poporcjach). Ogólnie trzeba analizować konkretną aplikację i na tej podstawie dobierać rozwiązanie, następnie mierzyć i sprawdzać poprawność założeń (albo nie, jak aplikacja jest mało wymagająca). Czasem wystarczy/węcej daje poprawienie samego kodu, który robi np. niepotrzebne obliczenia, które lepiej zrobić po stronie bazy, ma źe dobrane struktury i algorytmy itp. Prostej recepty nie dostaniesz.

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