簡體   English   中英

向 Node/Express 服務器發送大量 header 數據會產生什么后果?

[英]What are the consequences of sending large amounts of header data to a Node/Express server?

我正在使用使用 Express 運行的節點服務器(在節點 8 上運行)。 此服務器僅提供 static 個文件(使用express.static中間件)。 此配置在啟動時提供給它:

node --max-http-header-size=16384 dist/myServer.js

該服務器每分鍾收到數千個請求,最近,每個請求都有接近 16k 大小的標頭。

我們的服務器最近的 CPU 使用率比平時高得多 - 這可能是在我們的每個請求中發送過多標頭的結果嗎? 在 HTTP 請求中向 Node 服務器發送大量標頭會產生什么后果?

發送大量大標頭會導致以下情況:

  1. 更多 memory 用於每個傳入的 http 請求
  2. More.network 帶寬用於每個傳入的 http 請求
  3. 更多 CPU 用於讀取和解析每個傳入 http 請求的標頭
  4. 由於標頭通常被解析為更小的部分,這意味着更多的 memory 分配以及隨后更多的垃圾收集,這也可能導致更多的 CPU 使用率。

我只是想知道這是否可能是我們最近 CPU 使用率最近飆升的原因,以及是否值得研究降低發送到該服務器的標頭數量。

是的,值得調查這些是否會導致您的使用量激增,因為您實際上不需要的許多標頭肯定會導致您的服務器浪費資源。 他們貢獻了多少很難說。

作為測試,您可以在服務器前面配置一個 nginx 代理,該代理配置為在將不需要的標頭傳遞到您的服務器之前去除所有標頭,並查看這對您的服務器負載有多大影響。

或者,如果您對現有反向代理有任何控制權,則修改其配置以刪除不需要的標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM