新的系統完全沒有表現出新的效能反而出了許多新的而且是常規無法解釋的錯誤。前面那個發布中斷的錯誤,在放上在線後就消失了。這樣我可以理解為:這套機制沒有一個時間繼續,因此,如果性能裕量太強,就會令文件發布速度太快超出了java垃圾箱處理的速度。這也只是可能而已,因為實際上我是顯性地執行了清空操作,仍是沒有效果。
運行了幾天,好象沒有什麼事。但昨天馮進行了一次更新後沒有顯現,重啟了系統後,有體現了,但不久就發生了jvm錯誤,退出了。然後我連續幾次,包括把原生文件刪除,仍是如此,連續工作的時間不超出一個小時。這就是奇怪之處:
1、 如果有這個錯誤,那麼在試運行的一個多月以及已經在線的幾十個小時裡,為什麼沒有出現。為此,我特意再查安全記錄,沒有證據表明有外來成功的入侵。但我仍是更換了更高強度的密碼。
2、小馮的操作查實是常規操作,因此不應該有不良的反應,至少在重啟動以後。
3、不是一開始啟動不起來,而是運行一段時間後退出;
4、剛才是一啟動十幾分鍾就死(恰恰我的電腦也死了,沒有看到),但是現在啟動了已經一個多小時,還是活的(密切監視下),這又作何解釋?
另外,部分操作,象生成目錄,一會兒可以,一會兒就不行,顯得非常不一致。而不行後就一定不會,直到重啟。換了一下1.42 java似乎好一點,但是早上一看,又是早已退出。
而且更妙的是,這一條肯定就不是科學的,如果是的話也是matrix的把戲:我一直看著它時總是好的,而如果我的桌面電腦出了問題,剛才也不知我的剛裝的windows是什麼毛病反正從firefox開始一下子死了,等到重啟回來,那台服務器也完了。兩個完全無關聯的系統同時以不可知的原因同時死掉,不是一次!
這種問題,大概找巫婆來解決比找工程師來解決更合適一點。
Anyway,有幾條在下一台中可以考慮:
1、可能是舊版的java(1.4)與新的2.6內核不兼容。但如果這樣的話,應該在網上有大量這樣的信息出現,我沒有見到。
2、使用1.5java必須升級jakarta,以及程序內中代碼。這是一個大工程,而到時是不是能夠解決問題,也是天知道。java這樣做法,可以說辜負了我們的信任。
3、重裝回2.4內核必須考慮編入那個硬盤驅動,記得試過一次,不了了之,也就是說不是失敗但沒有成功。詳情記不太清楚,好象是:現有的glibc庫不支持對前一版的編譯,而當前可用的老機資源太少(??)沒有編起來?。這條路沒有試透還可以再試是真的,但也是一個大工程,別的不說,光是那幾百個選項就夠玩的。
4、新的DELL機硬件和目前的軟件不配。這個可能性有,但可能性不大,一來是硬件和軟件隔了一層,我們是在操作系統已經識別的硬件功能上工作,與硬件已經隔了一層,所以不應該存在不配的問題;二來也沒有什麼解決辦法:64位的操作系統安裝盤都動不了,拿它什麼辦法?天知道是硬件系統讓它動不了還是那些個64位linux本身有問題(用的人的確很少).
在GOOGLE上查一查,結果不多,有几條:
http://forum.java.sun.com/thread.jspa?threadID=307252&start=30
大致是有几种:
1、把tomcat重新在新的gcc上編譯一下(目前用的仍是老的代碼和jvm);
2、校低版本java1.4;
3、校低版本到linux2.4?核;
4、校低版本到glibc2.2.4;;
幾個原因指向于新的glibc与jvm的gc()方法上的沖突,但解決辦法卻沒有幾條。畢竟,這是操作系統級和JVM語言級的錯誤,一旦出現,實在是沒有太多的辦法的。
把java1.5換上去,也是如此沒有什?改進(但這?有一個插曲,先前好象在另一個內核上試著升級到1.5jvm失敗,但無意中發現有一個參數:
LD_ASSUME_KERNEL=2.2.5;export LD_ASSUME_KERNEL
既然它與glibc版本有沖突,那?這個可能是與沖突有關的。嘗試著注銷了這個環境變量,居然好象好了。連續運行了四個小時,大概已經運行了jvm好多次了。(按先前的表現,在一個小時內就會運行)。
正在高興時,同樣奇怪的事情發生了:我的windows桌面機和幾十公?外的linux服務器上的tomcat同時死掉了。以致于我必須重?桌面才能去照顧linux。這樣湊巧的事情接二連三出現,是不是意味著某種不是湊巧的東西,難道這真是一個matrix?
同樣奇怪的事情繼續在linux上上演,在tomcat自動退出後,無論我如何殺死java進程,重?tomcat,更換java版本,設置環境變量,反正,tomcat是一?動就死。死亡原因是大量的outofmemory,有時是其他的原因。直到把tomcat重?後,才算重新?動,但能維持多久,完全沒有譜。這說明,至少是這個內核,沒有釋放前一次的進程資源。這?,還沒有嘗試的就是
ulimit上給它一個更大的數。
事實上,無論是linux還是tomcat還是java,好象都是越升級越糟糕的樣子。我是不願升級的,實際上只是給硬件的升級裹脅著。就算現在繼續運行,也不代表著問題已經解決。四個辦法中:
1、把tomcat重新在新的gcc上編譯一下(這個工程在可以承受的範圍內,可以下一次嘗試);
2、校低版本java1.4;版本的調試也可以用到原來的服務器上,主要是確認新的版本可以適應舊的內核。
3、校低版本到linux2.4?核;這個可能很麻煩。只能在新的系統上才能嘗試。發布時也必須到機房一次。
4、校低版本到glibc2.2.4;HOWTO,並不清楚,也沒有太大的把握。