新聞中心
服務(wù)器崩潰是怎么造成的?
第一,內(nèi)存泄漏

CC+程序還可能產(chǎn)生另一個指針問題丟失對已分配內(nèi)存的引用。當內(nèi)存是在子程序中被分配時,通常會出現(xiàn)這種問題,其結(jié)果是程序從子程序中返回時不會釋放內(nèi)存。如此一來,對已分配的內(nèi)存的引用就會丟失,只要操作系統(tǒng)還在運行中,則進程就會一直使用該內(nèi)存。
這樣的結(jié)果是,曾占用更多的內(nèi)存的程序會降低系統(tǒng)性能,直到機器完全停止工作,才會完全請空內(nèi)存。
第二, C指針錯誤
用C或C++編寫的程序,如Web服務(wù)器APT模塊,有可能導致系統(tǒng)的崩潰,因為只要間接引用指針(即,訪問指向的內(nèi)存)中出現(xiàn)一個錯誤,就會導致操作系統(tǒng)終止所有程序。另外,使用了糟糕的C指針的Java模擬量(analog)將訪問一個空的對象引用。Java中的空引用通常不會導致立刻退出JVM,但是前提是程序員能夠使用異常處理方法恰當?shù)靥幚礤e誤。在這方面, Java無需過多的關(guān)注,但使用Java對可靠性進行額外的度量則會對性能產(chǎn)生一些負面影響。
第三,數(shù)據(jù)庫中的臨時表不夠用
許多數(shù)據(jù)庫的臨時表(cursor)數(shù)目都是固定的,臨時表即保留查詢結(jié)果的內(nèi)存區(qū)域。在臨時表中的數(shù)據(jù)都被讀取后,臨時表便會被釋放,但大量同時進行的查詢可能耗盡數(shù)目固定的所有臨時表。這時,其他的查詢就需要列隊等候,直到有臨時表被釋放時才能再繼續(xù)運行。
第四,線程死鎖
由多線程帶來的性能改善是以可靠性為代價的,主要是因為這樣有可能產(chǎn)生線程死鎖。線程死鎖時,第一個線程等待第二個線程釋放資源,而同時第二個線程又在等待第一個線程釋放資源。我們來想像這樣一種情形在人行道上兩個人迎面相遇,為了給對方讓道,兩人同時向一側(cè)邁出一步,雙方無法通過,又同時向另一側(cè)邁出一步,這樣還是無法通過。雙方都以同樣的邁步方式堵住了對方的去路。假設(shè)這種情況一直持續(xù)下去,這樣就不難理解為何會發(fā)生死鎖現(xiàn)象了。
服務(wù)器在什么情況下會癱瘓?
第一:高并發(fā)流量或請求超過服務(wù)器承受力
無論是企業(yè)和個人在租用服務(wù)器的時候都會受到峰值承受限制的,一旦超過服務(wù)器的承受能力,就會導致服務(wù)器癱瘓,應(yīng)用程序暫停,網(wǎng)站無法訪問。服務(wù)器都是有峰值限制的,不可能承受無上限的并發(fā)能力。而造成服務(wù)器癱瘓的原因就是在同一段時間內(nèi),訪問人數(shù)多,造成高流量的突進。超出了服務(wù)器的承受范圍。這種例子我們經(jīng)??梢钥吹?,比如雙11期間,很多公司為了應(yīng)對雙11的高流量,開啟的緊急避險措施和大規(guī)模的服務(wù)器負載能力。還有春運期間,12306網(wǎng)站由于受到高并發(fā)的問題,也會頻繁的出現(xiàn)崩潰。
第二:磁盤空間不足
導致服務(wù)器無法正常運行的原因也有可能是磁盤空間溢出導致的。企業(yè)的網(wǎng)絡(luò)管理員應(yīng)該實時關(guān)注磁盤的使用情況,并且要在規(guī)定的時間把磁盤儲存的數(shù)據(jù)備份到另外的存儲設(shè)備里面,確保數(shù)據(jù)無遺失,推薦相關(guān)閱讀:哪些網(wǎng)站應(yīng)該使用服務(wù)器呢?
服務(wù)器的磁盤大部分的資源都是被日志文件占用了,包括web服務(wù)器,數(shù)據(jù)庫等日志信息都包括其中,以及應(yīng)用程序服務(wù)器日志文件均與內(nèi)存泄漏是同等的危害。我們可以采取措施保護我們的數(shù)據(jù)和日志文件,日志文件對應(yīng)用程序進行異地存儲。日志文件系統(tǒng)空間如果滿了,則web服務(wù)器將自動被掛起,但是機器本身癱瘓和宕機的幾率就會大大降低。
第三:服務(wù)器超載
連接web服務(wù)器都是用一個線程鏈接的,web服務(wù)器會在線程用過之后自動掛起,不會再未已鏈接的線程提供任何服務(wù)。如果我們用了負載機制,那么如果該服務(wù)器沒有響應(yīng),則該服務(wù)器的負載則會自動的轉(zhuǎn)移到其他web服務(wù)器上,這個操作會使服務(wù)器一個接一個的用光線程。這中操作可能會導致整個服務(wù)器機組被掛起,操作系統(tǒng)同時還有可能在不斷接收新的鏈接,而我們的web服務(wù)器無法未其提供服務(wù),致使服務(wù)器崩潰。
到此,以上就是小編對于服務(wù)器老掛死的原因是什么的問題就介紹到這了,希望這2點解答對大家有用。
名稱欄目:服務(wù)器崩潰是怎么造成的?服務(wù)器老掛死的原因
文章起源:http://m.fisionsoft.com.cn/article/dhsosdc.html


咨詢
建站咨詢
