A. 伺服器宕機是什麼意思怎處理解決
宕機伺服器排查故障方法
1、在運行環境的問題中,最普遍的問題時磁碟空間耗盡。
2、在性能問題中,最普通的伺服器宕機原因確實是運行很糟糕的SQL,但也不一定都是這個原因,比如也有很多問題時由於伺服器Bug或錯誤的行為導致的。
3、糟糕的Schema和索引設計是第二大影響性能的問題。
4、復制問題通常由於主備數據不一致導致。
5、數據丟失問題通常由於操作的錯誤操作導致,並總是便隨著缺少可用備份的問題。
6.由於系統原因,導致的伺服器宕機,一般重啟下伺服器就可以。
明白了伺服器宕機的原因,我們就可以採取相應的措施來排查。宕機伺服器如何排查故障
B. 分布式系統常用的一致性演算法有哪些
在做伺服器負載均衡時候可供選擇的負載均衡的演算法有很多,包括: 輪循演算法(Round Robin)、哈希演算法(HASH)、最少連接演算法(Least Connection)、響應速度演算法(Response Time)、加權法(Weighted )等。其中哈希演算法是最為常用的演算法. 典型的應用場景是: 有N台伺服器提供緩存服務,需要對伺服器進行負載均衡,將請求平均分發到每台伺服器上,每台機器負責1/N的服務。 常用的演算法是對hash結果取余數 (hash() mod N):對機器編號從0到N-1,按照自定義的hash()演算法,對每個請求的hash()值按N取模,得到余數i,然後將請求分發到編號為i的機器。但這樣的演算法方法存在致命問題,如果某一台機器宕機,那麼應該落在該機器的請求就無法得到正確的處理,這時需要將當掉的伺服器從演算法從去除,此時候會有(N-1)/N的伺服器的緩存數據需要重新進行計算;如果新增一台機器,會有N /(N+1)的伺服器的緩存數據需要進行重新計算。對於系統而言,這通常是不可接受的顛簸(因為這意味著大量緩存的失效或者數據需要轉移)。那麼,如何設計一個負載均衡策略,使得受到影響的請求盡可能的少呢? 在Memcached、Key-Value Store、Bittorrent DHT、LVS中都採用了Consistent Hashing演算法,可以說Consistent Hashing 是分布式系統負載均衡的首選演算法。 1、Consistent Hashing演算法描述 下面以Memcached中的Consisten Hashing演算法為例說明。 由於hash演算法結果一般為unsigned int型,因此對於hash函數的結果應該均勻分布在[0,232-1]間,如果我們把一個圓環用232 個點來進行均勻切割,首先按照hash(key)函數算出伺服器(節點)的哈希值, 並將其分布到0~232的圓上。 用同樣的hash(key)函數求出需要存儲數據的鍵的哈希值,並映射到圓上。然後從數據映射到的位置開始順時針查找,將數據保存到找到的第一個伺服器(節點)上。 Consistent Hashing原理示意圖 新增一個節點的時候,只有在圓環上新增節點逆時針方向的第一個節點的數據會受到影響。刪除一個節點的時候,只有在圓環上原來刪除節點順時針方向的第一個節點的數據會受到影響,因此通過Consistent Hashing很好地解決了負載均衡中由於新增節點、刪除節點引起的hash值顛簸問題。 Consistent Hashing添加伺服器示意圖 虛擬節點(virtual nodes):之所以要引進虛擬節點是因為在伺服器(節點)數較少的情況下(例如只有3台伺服器),通過hash(key)算出節點的哈希值在圓環上並不是均勻分布的(稀疏的),仍然會出現各節點負載不均衡的問題。虛擬節點可以認為是實際節點的復製品(replicas),本質上與實際節點實際上是一樣的(key並不相同)。引入虛擬節點後,通過將每個實際的伺服器(節點)數按照一定的比例(例如200倍)擴大後並計算其hash(key)值以均勻分布到圓環上。在進行負載均衡時候,落到虛擬節點的哈希值實際就落到了實際的節點上。由於所有的實際節點是按照相同的比例復製成虛擬節點的,因此解決了節點數較少的情況下哈希值在圓環上均勻分布的問題。 虛擬節點對Consistent Hashing結果的影響 從上圖可以看出,在節點數為10個的情況下,每個實際節點的虛擬節點數為實際節點的100-200倍的時候,結果還是很均衡的。 第3段中有這些文字:「但這樣的演算法方法存在致命問題,如果某一台機器宕機,那麼應該落在該機器的請求就無法得到正確的處理,這時需要將當掉的伺服器從演算法從去除,此時候會有(N-1)/N的伺服器的緩存數據需要重新進行計算;」 為何是 (N-1)/N 呢?解釋如下: 比如有 3 台機器,hash值 1-6 在這3台上的分布就是: host 1: 1 4 host 2: 2 5 host 3: 3 6 如果掛掉一台,只剩兩台,模數取 2 ,那麼分布情況就變成: host 1: 1 3 5 host 2: 2 4 6 可以看到,還在數據位置不變的只有2個: 1,2,位置發生改變的有4個,占共6個數據的比率是 4/6 = 2/3這樣的話,受影響的數據太多了,勢必太多的數據需要重新從 DB 載入到 cache 中,嚴重影響性能 【consistent hashing 的辦法】 上面提到的 hash 取模,模數取的比較小,一般是負載的數量,而 consistent hashing 的本質是將模數取的比較大,為 2的32次方減1,即一個最大的 32 位整數。然後,就可以從容的安排數據導向了,那個圖還是挺直觀的。 以下部分為一致性哈希演算法的一種PHP實現。點擊下載
C. 如何預防伺服器宕機
想要預防的話首先需要知道一些知識。
你的伺服器能夠承受多少的並發訪問?
伺服器上的網站是不是會收到CC這些攻擊?
你的伺服器配置怎麼樣?
一般的話,預測下自己網站並發訪問數,然後IIS限制連接數不要超過你的承受能力。然後有攻擊的話,最好是選擇具有防禦的伺服器。很多人都是zhao我mai。
D. 伺服器出現宕機的原因有哪些
①
運行環境:一般來說,此原因是排名第一的伺服器宕機類別,運行環境可以看作是支持資料庫伺服器運行的系統和資源集合,包括操作系統、硬體以及網路等,在運行環境的問題中,最普遍的問題是磁碟空間耗盡。
② 伺服器性能:最常見的伺服器宕機原因是運行SQL,但還有其他的可能,比如也有些問題是由於伺服器Bug或錯誤的行為導致的。
③ 復制問題:復制問題通常由於主備數據不一致導致。
④數據丟失、損壞:數據丟失問題通常由於錯誤操作導致,並總是伴隨著缺少可用備份的問題,數據丟失一般情況下是由於drop
table的錯誤操作導致,並總是伴隨著缺少可用備份的問題。
| 要及時地發現伺服器宕機的問題!!!
有一句話說得很好,時間就是金錢,要最快時間發現宕機的問題,例如是否是應用程序導致內存溢出或泄露,是否是進程過多或不斷創建、耗盡資源等,是否應用程序異常導致,是否是遭受黑客入侵攻擊導致,是否是誤操作導致等等,伺服器宕機時,為了避免造成不必要的損失,要盡早通知服務商解決相關問題。
| 多准備空間
最好准備2個網站空間,它們存放的內容相同,但IP不同,且機房的地理位置不同,這樣宕機的可能性就大大降低了,第一時間發現宕機問題後,可以迅速地通過修改域名記錄,指向目前正常的網站空間。
E. 如何測試伺服器的穩定性
伺服器穩定性是最重要的,如果在穩定性方面不能夠保證業務運行的需要,在高的性能也是無用的。
正規的伺服器廠商都會對產品驚醒不同溫度和濕度下的運行穩定性測試。重點要考慮的是冗餘功能,如:數據冗餘、網卡榮譽、電源冗餘、風扇冗餘等。
一些測試方法主要分以下幾種:
壓力測試:已知系統高峰期使用人數,驗證各事務在最大並發數(通過高峰期人數換算)下事務響應時間能夠達到客戶要求。系統各性能指標在這種壓力下是否還在正常數值之內。系統是否會因這樣的壓力導致不良反應(如:宕機、應用異常中止等)。
Ramp Up 增量設計:如並發用戶為75人,系統注冊用戶為1500人,以5%-7%作為並發用戶參考值。一般以每15s載入5人的方式進行增壓設計,該數值主要參考測試加壓機性能,建議Run幾次。以事務通過率與錯誤率衡量實際載入方式。
Ramp Up增量設計目標: 尋找已增量方式加壓系統性能瓶頸位置,抓住出現的性能拐點時機,一般常用參考Hits點擊率與吞吐量、CPU、內存使用情況綜合判斷。模擬高峰期使用人數,如早晨的登錄,下班後的退出,工資發送時的消息系統等。
另一種極限模擬方式,可視為在峰值壓力情況下同時點擊事務操作的系統極限操作指標。加壓方式不變,在各腳本事務點中設置同集合點名稱(如:lr_rendzvous("same");)在場景設計中,使用事務點集合策略。以同時達到集合點百分率為標准,同時釋放所有正在Run的Vuser。
穩定性測試:已知系統高峰期使用人數、各事務操作頻率等。設計綜合測試場景,測試時將每個場景按照一定人數比率一起運行,模擬用戶使用數年的情況。並監控在測試中,系統各性能指標在這種壓力下是否能保持正常數值。事務響應時間是否會出現波動或隨測試時間增漲而增加。系統是否會在測試期間內發生如宕機、應用中止等異常情況。
根據上述測試中,各事務條件下出現性能拐點的位置,已確定穩定性測試並發用戶人數。仍然根據實際測試伺服器(加壓機、應用伺服器、數據伺服器三方性能),估算最終並發用戶人數。
場景設計思想:
從穩定性測試場景的設計意義,應分多種情況考慮:
針對同一個場景為例,以下以公文附件上傳為例簡要分析場景設計思想:
1)場景一:已壓力測試環境下性能拐點的並發用戶為設計測試場景,目的驗證極限壓力情況下測試伺服器各性能指標。
2)場景二:根據壓力測試環境中CPU、內存等指標選取伺服器所能承受最大壓力的50%來確定並發用戶數。
測試方法:採用1)Ramp Up-Load all Vusers simultaneously
2)Duration-Run Indefinitely
3)在Sechele-勾選Initalize all Vusers before Run
容錯性測試:通過模擬一些非正常情況(如:伺服器突然斷電、網路時斷時續、伺服器硬碟空間不足等),驗證系統在發生這些情況時是否能夠有自動處理機制以保障系統的正常運行或恢復運行措施。如有HA(自動容災系統),還可以專門針對這些自動保護系統進行另外的測試。驗證其能否有效觸發保護措施。
問題排除性測試:通過原有案例或經驗判斷,針對系統中曾經發生問題或懷疑存在隱患的模塊進行驗證測試。驗證這些模塊是否還會發生同樣的性能問題。如:上傳附件模塊的內存泄露問題、地址本模塊優化、開啟Tivoli性能監控對OA系統性能的影響等等。
測評測試是用於獲取系統的關鍵性能指標點,而進行的相關測試。主要是針對預先沒有明確的預期測試結果,而是要通過測試獲取在特定壓力場景下的性能指標(如:事務響應時間、最大並發用戶數等)。
評測事務交易時間:為獲取某事務在特定壓力下的響應時間而進行的測試活動。通過模擬已知客戶高峰期的各壓力值或預期所能承受的壓力值,獲取事務在這種壓力下的響應時間。
評測事務最大並發用戶數:為獲取某事務在特定系統環境下所能承受的最大並發用戶數而進行的測試活動。通過模擬真實環境或直接採用真實環境,評測在這種環境下事務所能承受的最大並發用戶數。判定標准閾值需預先定義(如響應時間,CPU佔用率,內存佔用率,已出現點擊率峰值,已出現吞吐量峰值等)。
評測系統最大並發用戶數:為獲取整個系統所能夠承受的最大並發用戶數而進行的的測試活動。通過預先分析項目各主要模塊的使用比率和頻率,定義各事務在綜合場景中所佔的比率,以比率方式分配各事務並發用戶數。模擬真實環境或直接採用真實環境,評測在這種環境下系統所能承受的最大並發用戶數。判定標准閥值預先定義(如響應時間,CPU佔用率,內存佔用率,已出現點擊率峰值,已出現吞吐量峰值等)。取值標准以木桶法則為准(並發數最小的事務為整個系統的並發數)。
評測不同資料庫數據量對性能的影響:針對不同資料庫數據量的測試,將測試結果進行對比,分析發現資料庫中各表的數據量對事務性能的影響。得以預先判斷系統長時間運行後,或某些模塊客戶要求數據量較大時可能存在的隱患。
問題定位測試在通過以上測試或用戶實際操作已經發現系統中的性能問題或懷疑已存在性能問題。需通過響應的測試場景重現問題或定義問題。如有可能,可以直接找出引起性能問題所在的代碼或模塊。
該類測試主要還是通過測試出問題的腳本場景,並可以增加發現和檢測的工具,如開啟Tivoli性能監控、開啟HeapDump輸出、Linux資源監控命令等。並在場景運行過程中輔以手工測試。
F. 伺服器宕機怎麼辦
解決方法:
對於伺服器頻繁出現宕機情況就要注意了檢查伺服器是否存在負載量過大,伺服器散熱存在問題等等情況。再針對這樣的情況一項一項來解決,這樣才能保證伺服器盡可能長時間正常運行。
對於一般伺服器宕機,我們可以採用重啟伺服器的方式來解決。正常重啟伺服器可以清除內存碎片,重新優化應用軟體,中斷無用的埠,緩解CPU壓力,加快伺服器運行速度等等。
對於伺服器租用用戶來說,伺服器宕機是非常值得重視的問題,如果租用的伺服器經常出現宕機情況的話,一定要及時通知服務商,讓伺服器查明具體情況,問題過於嚴重甚至可以要求跟換伺服器或者更換伺服器供應商。
G. 新手:nginx怎麼知道哪台伺服器宕機了需要怎麼配置文件還是需要其它的軟體
nginx一般運行在 80 埠,你只要訪問這個伺服器的網頁是否正常,或者是 監控 80埠是否正常即可。
H. 如何監控伺服器運行狀態,了解伺服器是否當機
伺服器宕機就像是電腦卡機是一樣的,一般情況下重啟下就可以解決,因為伺服器是24小時不停運轉的,如果用戶長時間不清理數據,也會造成宕機。
監控機器是不是宕機可以從遠程上看,看下是不是可以遠程,或者是遠程連接看什麼時候斷開
海騰數據的伺服器可以從機房的監控設備中看出機器是什麼時候停止運行。還可以看伺服器中運行的網站之類的什麼時候停止運行,也可以間接的檢查是不是宕機。
如果有什麼不了解的可以問我
I. 一致性hash 客戶端怎麼知道伺服器宕機
CRC是種根據網路數據封包或電腦檔案等數據產生簡短固定位數校驗碼的一種散列函數(HASH,把任意長度的輸入通過散列演算法,最終變換成固定長度的摘要輸...