2013-08-07 40 views
7

Tôi có một ứng dụng chạy các quy trình thực thi lâu dài. Để làm cho nó nhanh hơn, tôi làm đơn giản sharding dữ liệu và muốn chạy chúng song song, chỉ đơn giản bằng .fork() 2 trường hợp của cùng một ứng dụng.Node.js child_process.fork() để chạy trên các lõi CPU khác nhau

Tôi đang có 2 lõi máy ở đó và muốn đảm bảo rằng 2 lõi được sử dụng và ví dụ đầu tiên đang chạy trên lõi đầu tiên, thứ hai trên lõi thứ hai.

Tôi biết về mô-đun cluster, nhưng có vẻ như không liên quan trong trường hợp này, vì tôi không cần các dịch vụ HTTP đang chạy và cân bằng tải giữa chúng. Chỉ cần công nhân (có nghĩa là, họ không cần phải giao tiếp với nhau, gửi tin nhắn hoặc bất cứ điều gì - họ chỉ làm các yêu cầu HTTP và lưu trữ dữ liệu vào cơ sở dữ liệu).

Có thể nào kiểm soát được lõi CPU nào mà quá trình node.js sẽ thực hiện không? Làm thế nào để theo dõi điều đó trên Mac/Linux?

+1

Bạn có thể kiểm tra chủ đề này: http://stackoverflow.com/questions/663958/how-to-control -which-core-a-process-run-on – moka

+1

Tôi không nghĩ bạn có thể lập trình một luồng để chạy lõi CPU. Điều này sẽ tàn tật hệ điều hành vì nó không thể chuyển ngữ cảnh và do đó đa nhiệm. Những quyết định như vậy là tốt nhất còn lại cho hệ điều hành. – user568109

+0

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

Trả lời

Các vấn đề liên quan