2013-01-24 81 views
1

是否可以限制某個node.js進程的帶寬?看起來套接字數據上的pause/resume實際上並不影響下載速度。如何限制node.js帶寬?

我也嘗試過滴流無效:trickle -d 1 -u 1 node band.js,顯示與沒有滴流相同的速度。

+0

[限制已啓動進程的網絡吞吐量](http://serverfault.com/questions/217080/limiting-network-throughput-of-an-already-launched-process-linux-freebsd) – Mustafa

+0

我打算同意@Mustafa你可能想用os級別的工具來做這件事,而不是用你的node.js程序中的代碼。嘗試詢問超級用戶爲什麼你不能慢慢工作。這對我來說似乎是一個堅實的途徑。 –

回答

3

我對此有同樣的問題。我在github項目libuv上發佈了一個問題,它是Node.js的事件系統的核心,因爲我認爲這是涓流不起作用的原因。 (https://github.com/joyent/libuv/issues/844

感謝來自bnoordhuis的迴應,涓流的原因無法正常工作是因爲libuv使用system_call直接使用系統調用,而不是通過調用glibc。但是,涓流僅包裹glibc函數以增加帶寬限制支持。

我還沒有找到一個完美的解決方案,但你可以嘗試這些:

  1. pfSense:帶寬限制,支持基於FreeBSD的獨立的防火牆
  2. netbrake:像涓涓細流,與節點的工作。 js,但並不準確,需要限制上傳和下載帶寬
  3. 涓流:如果您正在嘗試做一些實驗,您可以嘗試在客戶端使用涓流,因爲涓流與curl一起工作