我正在使用使用 Express 運行的節點服務器(在節點 8 上運行)。此服務器僅提供靜態檔案(使用express.static中間件)。此配置在啟動時提供給它:
node --max-http-header-size=16384 dist/myServer.js
該服務器每分鐘接收數千個請求,最近,每個請求都有接近 16k 大小的標頭。
我們的服務器最近的 CPU 使用率比平時高得多 - 這可能是我們在每個請求中發送太多標頭的結果嗎?在 HTTP 請求中向 Node 服務器發送大量標頭會有什么后果?
uj5u.com熱心網友回復:
發送大量大標頭會導致以下情況:
- 每個傳入的 http 請求使用更多記憶體
- 每個傳入的 http 請求使用更多的網路帶寬
- 更多 CPU 用于讀取和決議每個傳入 http 請求的標頭
- 由于標頭通常被決議成更小的部分,這意味著更多的記憶體分配,然后是更多的垃圾收集,這也可能導致更多的 CPU 使用。
我只是想知道這是否可能是我們最近 CPU 使用率飆升的原因,以及是否值得調查降低發送到此服務器的標頭數量。
是的,值得調查這些是否會導致您的使用量激增,因為您實際上不需要的許多標頭肯定會導致您的服務器浪費資源。他們貢獻了多少很難說。
作為測驗,您可以在服務器前面配置一個 nginx 代理,該代理被配置為在將不需要的標頭傳遞到您的服務器之前剝離所有標頭,并查看這會改變您的服務器負載的程度。
或者,如果您對現有的反向代理有任何控制權,則修改其配置以洗掉您不需要的標頭。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/432044.html
標籤:javascript 节点.js 表示
上一篇:Webpack的使用
下一篇:如何構建此服務器后端路由?
