2013-08-07 5 views
7

Ich habe eine Anwendung, die lange ausführende Prozesse ausführt. Um es schneller zu machen, mache ich einfach Sharding von Daten und möchte sie parallel ausführen, einfach durch .fork() 2 Instanzen der gleichen Anwendung.Node.js child_process.fork(), um auf verschiedenen CPU-Kernen zu laufen

Ich habe 2 Cores Maschine dort und möchte sicherstellen, dass 2 Cores verwendet werden und die erste Instanz läuft auf dem ersten Kern, zweite auf dem zweiten Kern.

Ich weiß über cluster Modul, aber es scheint in diesem Fall nicht relevant, da ich HTTP-Dienste nicht ausführen und Lastenausgleich zwischen ihnen benötigen. Nur Arbeiter (das heißt, sie müssen nicht miteinander kommunizieren, Nachrichten senden oder was auch immer - sie machen nur HTTP-Anfragen und speichern Daten in der Datenbank).

Gibt es überhaupt die Möglichkeit zu steuern, welchen CPU-Kern node.js verarbeiten würde? Wie überwacht man das auf Mac/Linux?

+1

Sie könnten dieses Thema überprüfen: http://StackOverflow.com/questions/663958/how-to-control - which-core-a-process-runs-on – moka

+1

Ich glaube nicht, dass Sie einen Thread zum Ausführen eines CPU-Kerns programmieren können. Dies wird das Betriebssystem beeinträchtigen, da es keinen Kontextwechsel und daher Multitasking durchführen kann. Solche Entscheidungen lassen sich am besten dem Betriebssystem überlassen. – user568109

+0

http://Stackoverflow.com/a/8685968/941764 – jgillich

Antwort

Verwandte Themen