中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

服務器為什么會崩潰

小新
325
2021-12-27 16:49:08
欄目: 云計算

服務器會崩潰的原因:1、服務器中出現內存泄漏問題導致;2、服務器中用C或C++編寫的程序出現C指針錯誤問題導致;3、服務器數據庫中的臨時表不夠用到導致;4、服務器出現線程死鎖問題導致;5、服務器的磁盤資源不足導致;6、服務器訪問用戶突然暴漲導致服務器超載,從而使服務器站點崩潰。

服務器為什么會崩潰

具體內容如下:

1、內存泄漏

C/C++程序還可能產生另一個指針問題:丟失對已分配內存的引用。當內存是在子程序中被分配時,通常會出現這種問題,其結果是程序從子程序中返回時不會釋放內存。如此一來,對已分配的內存的引用就會丟失,只要操作系統還在運行中,則進程就會一直使用該內存。這樣的結果是,曾占用更多的內存的程序會降低系統性能,直到機器完全停止工作,才會完全清空內存。

2、C指針錯誤

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

3、數據庫中的臨時表不夠用

許多數據庫的臨時表(cursor)數目都是固定的,臨時表即保留查詢結果的內存區域。在臨時表中的數據都被讀取后,臨時表便會被釋放,但大量同時進行的查詢可能耗盡數目固定的所有臨時表。這時,其他的查詢就需要列隊等候,直到有臨時表被釋放時才能再繼續運行。

4、線程死鎖

由多線程帶來的性能改善是以可靠性為代價的,主要是因為這樣有可能產生線程死鎖。線程死鎖時,第一個線程等待第二個線程釋放資源,而同時第二個線程又在等待第一個線程釋放資源。我們來想像這樣一種情形:在人行道上兩個人迎面相遇,為了給對方讓道,兩人同時向一側邁出一步,雙方無法通過,又同時向另一側邁出一步,這樣還是無法通過。雙方都以同樣的邁步方式堵住了對方的去路。假設這種情況一直持續下去,這樣就不難理解為何會發生死鎖現象了。

5、磁盤已滿

導致系統無法正常運行的最可能的原因是磁盤已滿。一個好的網絡管理員會密切關注磁盤的使用情況,隔一定的時間,就需要將磁盤上的一些負載轉存到備份存儲介質中(例如磁帶)。

日志文件會很快用光所有的磁盤空間。Web服務器的日志文件、SQL*Net的日志文件、JDBC日志文件,以及應用程序服務器日志文件均與內存泄漏有同等的危害。可以采取措施將日志文件保存在與操作系統不同的文件系統中。日志文件系統空間已滿時Web服務器也會被掛起,但機器自身被掛起的幾率已大大減低。

6、服務器超載

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

0
河南省| 星子县| 盈江县| 乌拉特中旗| 白山市| 德江县| 彰武县| 杂多县| 福鼎市| 商水县| 佛教| 正镶白旗| 揭阳市| 桓仁| 辽宁省| 绩溪县| 基隆市| 平湖市| 谢通门县| 安西县| 平陆县| 崇文区| 会东县| 忻城县| 阿尔山市| 长治市| 祁连县| 杂多县| 阆中市| 东宁县| 碌曲县| 垦利县| 北辰区| 崇义县| 湟源县| 丰镇市| 株洲县| 和田市| 灵石县| 泌阳县| 万盛区|