請教大家個問題,我這邊需要做一個服務器,服務器處理邏輯很簡單,對軟體客戶端提交的的資料加上服務器保存的密鑰進行md5計算回傳給客戶端。
問題就是并發比較大,1000+/秒,然后客戶端提交的資料比較大,在300kb-800kb左右,請問大家,我改怎么配置服務器呢,一臺50M帶寬的服務器夠用么?
uj5u.com熱心網友回復:
Tomcat 默認配置的最大請求數是 150,也就是說同時支持 150 個并發,當然了,也可以將其改大。當某個應用擁有 250 個以上并發的時候,應考慮應用服務器的集群。
具體能承載多少并發,需要看硬體的配置,CPU 越多性能越高,分配給 JVM 的記憶體越多性能也就越高,但也會加重 GC 的負擔。
作業系統對于行程中的執行緒數有一定的限制:
Windows 每個行程中的執行緒數不允許超過 2000
Linux 每個行程中的執行緒數不允許超過 1000
另外,在 Java 中每開啟一個執行緒需要耗用 1MB 的 JVM 記憶體空間用于作為執行緒堆疊之用。
Tomcat的最大并發數是可以配置的,實際運用中,最大并發數與硬體性能和CPU數量都有很大關系的。更好的硬體,更多的處理器都會使Tomcat支持更多的并發。
Tomcat 默認的 HTTP 實作是采用阻塞式的 Socket 通信,每個請求都需要創建一個執行緒處理。這種模式下的并發量受到執行緒數的限制,但對于 Tomcat 來說幾乎沒有 BUG 存在了。
Tomcat 還可以配置 NIO 方式的 Socket 通信,在性能上高于阻塞式的,每個請求也不需要創建一個執行緒進行處理,并發能力比前者高。但沒有阻塞式的成熟。
這個并發能力還與應用的邏輯密切相關,如果邏輯很復雜需要大量的計算,那并發能力勢必會下降。如果每個請求都含有很多的資料庫操作,那么對于資料庫的性能也是非常高的。
對于單臺資料庫服務器來說,允許客戶端的連接數量是有限制的。
并發能力問題涉及整個系統架構和業務邏輯。
系統環境不同,Tomcat版本不同、JDK版本不同、以及修改的設定引數不同。并發量的差異還是蠻大的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/21967.html
標籤:應用服務器
上一篇:文章按日期歸檔
下一篇:js初學者 問一個?
