伺服器站點崩潰的原因有哪些

十月1575873887發表於2023-02-14

在計算機網路日益普及的今天,電腦保安不但要求防治計算機病毒,而且要提高系統抵抗駭客非法入侵的能力,還要提高對遠端資料傳輸的保密性,避免在傳輸途中遭受非法竊取。下面來給你們講講伺服器託管站點崩潰的幾大原因。

第一,記憶體洩漏
C/C++程式還可能產生另一個指標問題:丟失對已分配記憶體的引用。當記憶體是在子程式中被分 配時,通常會出現這種問題,其結果是程式從子程式中返回時不會釋放記憶體。如此一來,對已分配的記憶體的引用就會丟失,只要作業系統還在執行中,則程式就會一 直使用該記憶體。這樣的結果是,曾佔用更多的記憶體的程式會降低系統效能,直到機器完全停止工作,才會完全清空記憶體。

第二,C指標錯誤
用C或C++編寫的程式,如Web伺服器API模組,有可能導致系統的崩潰,因為只要間接引 用指標(即,訪問指向的記憶體)中出現一個錯誤,就會導致作業系統終止所有程式。另外,使用了糟糕的C指標的Java模擬量(analog)將訪問一個空的 物件引用。Java中的空引用通常不會導致立刻退出JVM,但是前提是程式設計師能夠使用異常處理方法恰當地處理錯誤。在這方面,Java無需過多的關注,但 使用Java對可靠性進行額外的度量則會對效能產生一些負面影響。

第三,資料庫中的臨時表不夠用
許多資料庫的臨時表(cursor)數目都是固定的,臨時表即保留查詢結果的記憶體區域。在臨時表中的資料都被讀取後,臨時表便會被釋放,但大量同時進行的查詢可能耗盡數目固定的所有臨時表。這時,其他的查詢就需要列隊等候,直到有臨時表被釋放時才能再繼續執行。

第四,執行緒鎖死
由多執行緒帶來的效能改善是以可靠性為代價的,主要是因為這樣有可能產生執行緒死鎖。執行緒死鎖 時,第一個執行緒等待第二個執行緒釋放資源,而同時第二個執行緒又在等待第一個執行緒釋放資源。我們來想像這樣一種情形:在人行道上兩個人迎面相遇,為了給對方讓 道,兩人同時向一側邁出一步,雙方無法透過,又同時向另一側邁出一步,這樣還是無法透過。雙方都以同樣的邁步方式堵住了對方的去路。假設這種情況一直持續 下去,這樣就不難理解為何會發生死鎖現象。
第五,磁碟已滿
導致系統無法正常執行的最可能的原因是磁碟已滿。一個好的網路管理員會密切關注磁碟的使用情況,隔一定的時間,就需要將磁碟上的一些負載轉存到備份儲存介質中(例如磁帶)。
日誌檔案會很快用光所有的磁碟空間。Web伺服器的日誌檔案、SQL*Net的日誌檔案、 JDBC日誌檔案,以及應用程式伺服器日誌檔案均與記憶體洩漏有同等的危害。可以採取措施將日誌檔案儲存在與作業系統不同的檔案系統中。日誌檔案系統空間已 滿時Web伺服器也會被掛起,但機器自身被掛起的機率已大大減低。

第六,伺服器超載
Netscape Web伺服器的每個連線都使用一個執行緒。Netscape Enterprise Web伺服器會線上程用完後掛起,而不為已存在的連線提供任何服務。如果有一種負載分佈機制可以檢測到伺服器沒有響應,則該伺服器上的負載就可以分佈到其 它的Web伺服器上,這可能會致使這些伺服器一個接一個地用光所有的執行緒。這樣一來,整個伺服器組都會被掛起。作業系統級別可能還在不斷地接收新的連線, 而應用程式(Web伺服器)卻無法為這些連線提供服務。使用者可以在瀏覽器狀態行上看到connected(已連線)的提示訊息,但這以後什麼也不會發生。

總之,還有許多因素也極有可能導致伺服器租用或伺服器託管站點無法工作。有許多種原因可能導致Web站點無法正常工作,這使得系統地檢查所有問題變得很困難。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019600/viewspace-2935300/,如需轉載,請註明出處,否則將追究法律責任。

相關文章