[英]Running Node.js (on Windows R2 server): How can I reduce the amount of RAM that my grunt tasks consume?
我有2種環境:一種是苛刻的環境,它處理每周的過程並將其推送到實時生產數據庫中。 另一個是帶有生產數據庫的實時應用程序本身。
我最近在Grunt中進行了一些優化,以更好的方式處理和存儲數據,從而實現了更快的應用程序和更好的整體UX。 我的問題是,在每周生產期間進行的處理占用大量內存,大約需要10個小時。 我認為可以花10個小時,但是我的問題是內存使用率高達95%,並且實時應用的響應時間開始爬升,直到咕unt聲完成為止幾乎沒有響應。
我的問題是...不添加額外的RAM(現在為8GB),如何使Grunt在不影響實時應用程序用戶體驗的情況下運行此過程? 感謝您提供的任何建議。
我認為這里的“正確”答案是使用另一台計算機。 出於這個確切的原因,您不應該在為生產網站提供服務的同一台機器上運行批量處理任務-它們傾向於消耗所有可用資源,而沒有資源留給您的Web服務器。
如果出於某種原因而不選擇另一台計算機,那么您需要診斷為什么批量任務占用了如此多的內存。 node-inspector和memwatch是良好的起點。 這些將使您可以檢查JavaScript堆以查看內存中的內容。
但是,JS堆通常限制在1到1.9 GB之間(取決於節點版本),因此,如果您的批量任務正在使用更多的內存,則有幾種可能性:
Buffer
沒有被處置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.