2011-09-05 13 views
7

Trang web của tôi, CompassionPit.com, được cung cấp bởi Node.js. Tôi đã phát hành mã nguồn; nó là hosted at GitHub. Bản thân ứng dụng đang chạy trên Linode với bộ nhớ RAM 768MB (gần đây tôi đã nâng cấp máy chủ, nó ở mức 512MB).Làm thế nào tôi có thể cấu hình ứng dụng Node để xem nơi tôi đang sử dụng hết bộ nhớ và tài nguyên CPU?

Gần đây tôi đã nhận được các thông báo sử dụng CPU từ Linode: chúng tôi ngày càng thường sử dụng 90% +. Tôi gọi Linode để xem những gì tôi có thể làm để nâng cấp quyền truy cập vào tài nguyên CPU, nhưng dường như tôi không sao, vì nếu chúng ta tối đa 100% thì chúng ta có thể tràn qua 3 lõi tiếp theo (Linodes là 4 bộ xử lý Xen trường hợp).

Làm cách nào để tôi có thể cấu hình ứng dụng Node của mình để xem nơi tôi đang sử dụng hết bộ nhớ và tài nguyên CPU? Tôi dự đoán tôi sẽ sớm cần phải cấu trúc lại ứng dụng để được chạy bởi một thiết lập nhiều máy chủ, nhưng tôi trực giác tin rằng việc lược tả thích hợp sẽ dẫn đến các quyết định kiến ​​trúc thông minh hơn. Nêu tôi sai vui long chân chỉnh tôi.

+0

CompassionPit.com dường như biến mất, cho bất cứ ai đến với bài này nhiều năm sau đó. – jcollum

Trả lời

0

Tôi đã thành công hợp lý khi sử dụng https://github.com/dannycoates/node-inspector để lập hồ sơ. Có hướng dẫn cài đặt ở cuối tệp README.

Kể từ phiên bản mới hơn của Node.js, phần lược tả của trình kiểm tra nút không còn hoạt động nữa. Tôi đã thành công hợp lý với --prof (http://code.google.com/p/v8/wiki/V8Profiler) và https://github.com/c4milo/node-webkit-agent như được đề cập trong câu trả lời bên dưới.

+0

Tôi muốn kêu gọi điều đó từ kênh # Node.js trên Freenode, mọi người cũng đã đề xuất dtrace (tín dụng: H4ns) và v8-profiler (Glenjamin). –

3

Node thanh tra không thể hồ sơ nút sau khi phiên bản 0.6.x

Plugin sau đã được cập nhật để làm việc với phiên bản mới của v8 (nút 0.7.x +). Đó là người duy nhất bên cạnh nodetime.com vẫn đang hoạt động. Nó sử dụng trình gỡ lỗi webkit thực tế:

https://github.com/c4milo/node-webkit-agent

Nó có hướng dẫn rất rõ ràng là tốt.

+0

Điều này không còn đúng nữa. Thanh tra nút đã được cập nhật trong thời gian chờ đợi. – Leo

+0

@LeoKoppelkamm Bạn thấy Node Inspector hỗ trợ hồ sơ ở đâu? [README vẫn nói] (https://github.com/node-inspector/node-inspector#known-issues) "Profiler chưa được triển khai". – John

+0

Tôi đã đề cập đến nhận xét 0.6.x. Thanh tra nút đã hoàn toàn bị hỏng một lúc, nhưng điều đó đã được sửa trong thời gian đó. Tôi sẽ chỉnh sửa câu trả lời để làm rõ điều đó. – Leo

1

Kể từ v6.3.0, you can now runnode --inspect your_script.js.

Nút sẽ in URL tới bảng điều khiển, có thể mở bằng Chrome, nút này sẽ kết nối bạn để hiển thị Trình kiểm tra web đầy đủ chức năng mà bạn có thể sử dụng để lập cấu hình quy trình Node.

Run node --inspect --debug-brk ngay lập tức tạm dừng thi công (đó là thuận tiện nếu bạn cần để bắt đầu một phiên profiling càng sớm càng ứng dụng của bạn bắt đầu)