題 SSH連接限制


我有一個包含100台機器的網絡,所有機器都使用ubuntu Linux。

可以連接到一台機器(同時)的機器數量是否有限制?

例如,我可以讓99台機器與第100台機器保持連續的ssh連接嗎?我可以讓我的每台機器(100台中的每台機器)與所有其他99台機器保持連續的ssh連接嗎?

每個這樣的連接需要多少內存?


3
2018-04-04 15:41


起源




答案:


總連接數主要受限於它們可以進入的端口數量以及系統的能力。有配置選項(Max_Sessions和Max_Startup),但它們僅適用於來自單個IP的連接數,以及並發請求的啟動連接數......基本上它們是DDOS保護。

沒有簡單的方法可以判斷連接將使用多少內存:它完全取決於流量。一個利用率極高的連接可以使用比沒有做任何事情的10,000個連接更多的資源。

所有這一切,在需要時建立連接幾乎總是更好的想法,而在它們不需要時關閉。


7
2018-04-04 16:01



謝謝您的回答。我的目標是能夠盡快地向每個節點寫入/讀取數據。打開和關閉連接會降低我的表現。任何其他想法如何實現這一目標? - user74781
@user:如果你要同時從100個連接寫入,那麼你很快就會遇到問題......很可能你會在其他任何有機會破壞之前讓你的帶寬飽和。什麼樣的數據,它必須是實時的? - Satanicpuppy
謝謝。我可能會將數據從ONE CONNECTION寫到另一個99.我得到的數據是實時流式傳輸。我在機器上處理它 X在內存中,並希望找到最快的方式(並行,如果可能的話)將所有'數據片段'發送到其他99台機器中的每一台(意味著,每台機器都將得到它的部分)。然後,由每台機器處理它收到的數據並將其存儲在本地磁盤中。是否有意義? - user74781
@user:所以你在看 出站 連接,從一台機器到99台其他機器,或者我們是否正在談論100台機器都連續連接到99台其他機器,所有這些機器都用實時數據互相攻擊?如果機器全部聚合本地組中的數據,而不是每台機器都獲得完整的數據副本,那麼您可能會取得更大的成功。 - Satanicpuppy
是的,假設我們正在談論出站連接。有一台機器可以獲取數據。它將它分成碎片。將“碎片”發送到單個機器的最快方法是什麼? - user74781


我想你可以。我常常在家裡有3個左右的盒子,在我的辦公室裡我們最多可以有10個。它只取決於你的電腦能處理什麼。

您可能需要更改sshd_config中的設置。這是一個鏈接 手冊頁。它被發現於 /etc/ssh/sshd_config。默認值為10.您需要增加此值。

我找到了這個 資源 談到瞭如何增加最大值。這是一個小解釋:

  • /proc/sys/net/core/somaxconn - 最大TCP連接(SSH通過TCP連接)
  • /proc/sys/net/core/netdev_max_backlog - 沒有那麼大的交易,這是最大數據包隊列

如果需要增加它們,可以編輯這些數字。我的默認 somaxconn 是128,所以你應該好。

編輯:

其他選擇

使用帶有NodeJS的websockets。

這應該讓你開始。如果您不想學習如何使用websockets,只需將HTTP Post請求發送到Web服務器即可。它們沒有太多開銷,您可以通過這種方式發送大量數據。我個人會選擇websockets,因為它們是實時的,並且設置起來並不困難。


3
2018-04-04 16:02



是的,我也有默認值 somaxconn 這裡我的目標是能夠盡快地向每個節點寫入/讀取數據。你有什麼'更好'(更快)的建議,如何做到這一點,而不是通過連接 ssh? - user74781
只是讀寫數據?對文件使用rsync,它可以跟踪更改並減少總網絡開銷。我認為是 nodes 你的意思是個人電腦。你究竟想做什麼? - beatgammit
您還可以設置HTTP服務器(例如NodeJS)並創建一個處理websockets的簡單服務器(如果您只想發送數據)。幾乎沒有網絡開銷,它保持開放狀態。缺點是你必須做一些編程。 - beatgammit
@tjameson: rsync 發送/接收文件很好。我的目標是能夠以最快的方式將數據寫入單個機器(在網絡中連接)。我的源數據流入了內存 machine X。我在內存中處理它,然後需要存儲它。這是很多數據,因此,理想情況下,我希望將數據拆分到內存中(使用某些邏輯),然後以最快的方式將其發送到每台計算機(也就是它的各個部分)。個人計算機將處理將數據寫入其本地磁盤。 - user74781
然後我會使用websockets。使用NodeJS或類似的東西設置websockets,並使用您需要的任何邏輯將數據推送到每個。我會發一些鏈接到我的答案。 - beatgammit