Ogólnie system spróbuje zrobić to samodzielnie, aby zmaksymalizować wykorzystanie procesora. Jeśli jednak chcesz kierować na konkretny procesor, powinieneś sprawdzić TaskSet. Ustawiła powinowactwo tego procesu.
Istnieje również kilka przydatnych pytań, które omawiają ten sam temat. Spójrz.
Upstart: each process on different core Nodejs
Node.js - targeting a cpu core
Node.js on multi-core machines
In AmazonEC2 cpu core and nodejs
How to deploy Node.js in cloud for high availability using multi-core
Multi node modlue to utilize cpu
Jest też moduł, Cluster, że może być również bardzo przydatny dla wykorzystania procesora. Pozwala to na rozwidlenie wielu procesów w celu rozdzielenia obciążenia na wiele rdzeni.
UPDATE
Wreszcie, mam coś podobnego wdrożone zgodnie z OP.
Przypadek 1.
- mam dedykowanego Sever z 8 rdzeni procesora.
- Mam wdrożony wątek pojedynczego węzła i użyłem modułu Cluster do współdzielenia obciążenia pracą (opisana przez pl47ypus PS: dzięki za odpowiedź).
- Wynik jest dobry, ale czasami wątek podrzędny może przestać reagować, więc zdecydowałem się wypróbować stary proces, którego użyłem w poprzedniej aplikacji.
Przypadek 2.
- samym serwerze, mam wdrożony 8 procesy node.js z różnych portów.
- Następnie umieszczam nginx przed nimi, nasłuchując na porcie 80 z procesem roboczym 8.
- Wynik jest lepszy niż przypadek 1, a także bardzo łatwy do skonfigurowania nginx, również najbardziej stabilny.
Proponuję również wypróbować niektóre z wymienionych rozwiązań i monitorować system w każdym przypadku; jak procesor, użycie pamięci i io. Wreszcie, z twoich testów zobaczysz najlepsze rozwiązanie dla twojego przypadku użycia. Każda aplikacja ma własne wymagania, więc lepiej jest spróbować znaleźć to, czego potrzebują twoje aplikacje.
mógłby Pan pls dodać jakiś szczegół scenariusza, który chcesz osiągnąć? –
@VivekBajpai Mam 4 serwery nodejs działające wiecznie, w godzinach szczytu każdy może doświadczyć dużego obciążenia, myślę, że każda z nich skonfigurowana na własny rdzeń pomoże w godzinach szczytu. – GameDevGuru
Czy uruchamiasz go wewnątrz serwera wirtualnego, takiego jak EC2 lub dedykowanych serwerów rzeczywistych? –