tomcat可以支持多大并發量?
可以配置Tomcat的最大并發數。實際中,最大并發數與硬件性能和CPU數量有很大關系。更好的硬件和更多的處理器將使Tomcat支持更多的并發性。
Tomcat的默認HTTP實現是使用阻塞套接字通信,每個請求都需要通過創建一個線程來處理。當一個進程有500個線程運行時,性能已經很低了。Tomcat默認配置的最大請求數是150,這意味著同時支持150個并發請求。能承載多少并發取決于硬件配置。CPU越多性能越高,分配給JVM的內存越多性能越高,但也會增加GC的負擔。當一個應用程序有超過250個并發時,應該考慮應用服務器集群。t
操作系統對進程中的線程數量有一定的限制:
Windows每個進程不能有超過2000個線程。
Linux中每個進程的線程數不允許超過1000。
Java中,每個線程需要消耗1MB的JVM內存空間用于線程棧,這里也要考慮。ttt
gc會引起線程異常嘛?
Gc是java垃圾收集,jvm內存結構分為堆區、方法區、棧區和本地方法區。其中堆區分為年輕一代和老一代。如果后輩沒有分配足夠的內存,就會觸發gc,不會引起線程異常。gc是jvm獨立線程的責任,不會和業務線程。
aix系統jvm如何調整fullgc參數?
參考以下內容:JVM的常用調試參數:-v:GC在虛擬機有內存回收時在輸出設備上顯示信息-xlog:文件名將GC相關的日志信息記錄到一個文件中進行分析-xx:-h:On
JVM-GC垃圾回收算法中,如何判定一個對象是否是可回收的對象?
首先,明確對象(引用)類型:
1軟參考軟參考是有用的,但不是必需的。使用軟引用,關聯的對象將在系統發生OOM(內存不足)之前被回收。2弱引用3虛擬引用PhantomReference最弱,垃圾回收時會收到通知。
Top4引新造。軟引用和弱引用只有jdk1.2才有,一般用強引用,內存不足除外。軟引用和弱引用,有何時使用緩存。
如何判斷一個物體是否可以回收?
方法1:引用計數法
顧名思義,計算一個對象被引用的次數。但是引用計數法已經落后了,可達性分析可以解決相互引用的問題(兩種方法都是基于強引用)。
方法2:可訪問性分析
可訪問性指的是GCRoot是否能找到一個對象,如果找不到,這個對象可以粗略地(不是絕對地,以后)認為是可回收的。
以下對象可以用作GC根目錄:
注意不需要死記硬背??梢赃@樣想:Java中有四種變量——局部變量、靜態變量、常量和成員變量。方法區域中常量引用的對象是局部變量;虛擬機棧和本地方法棧是線程運行時創建的,其中引用的對象需要使用,不能回收。
遙不可及會被回收嗎?該對象不可訪問(第一次標記),如果finalize()方法沒有重新建立引用鏈(第二次標記),該對象將被回收。使用()保存對象。