999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

排查服務器內存異常故障

2019-12-16 02:54:30河南劉進京
網絡安全和信息化 2019年12期
關鍵詞:進程設置系統

河南 劉進京

單位的一臺服務器出現故障,導致正常的業務無法進行。該服務器主要進行市場數據評估分析,分析程序使用Java 開發。該服務器一直運行比較正常,使用的是CentOS 6.X系統,因為近幾日數據量大增的緣故,才出現“罷工”問題。

登錄到該服務器上,執行“dmesg”命令,查看系統運行信息。在其中發現“Out of memory:Kill process 31076(Java)”,“oom_adj=0,oom_score_adj=0”等內容,說明Java 進程被系統終結,造成該分析系統無法正常運作的問題。

故障排查

根據提示信息中的“Out of memory”字樣,說明這是因為Java 進程大量申請系統內存資源,導致內存溢出,才被系統自動關閉。

我 們知道,在Linux 內核中存在“Out of Memory killer”管理機制,當系統內存低于警戒線時,該管理機制就會被自動激活,系統會根據實際情況,挑選并關閉合適的進程,來釋放更多的內存,保證系統可以正常運行。

執行“free -m”命令,查看內存使用情況,發現該機總內存為32GB,但是可用內存卻不足500MB,而且Cache和Buffer 的數值都比較低,說明系統內存消耗的很大,可能因為該分析系統使用的內存量比較高,所以系統就將對應的Java 進程關閉。

“Out of Memory killer”機制是系統在內存不足的情況下采取的應對策略,該機制會使用一套啟發式算法,來計算所有進程的分數,對于得到最高的進程來說,其占用的內存量就最高,系統就會將其關閉。

在正常情況下,系統內核會根據應用程序的要求來按需分配內容,但是不同的應用程序并不會將分配的內存全部用完。對于這些“剩余”的內存來說,系統可以對其合理利用。但是這些內存量屬于不同的進程,系統如果直接回收的話,實現起來是比較繁瑣的。

為此系統會采用“Over-Commit memory”(即過度分配內存)的方法,來提高內存的整體使用率。即系統會判定各進程不會同時使用并用完分配給它們的內存上限。在一般情況下,系統這樣管理內存是沒有問題的。

但是,如果大多數應用程序都用完了系統分配給其的內存后,就會造成這些內存消耗量之和大于物理內存容量的情況,進而就會出現系統可用內存急速降低甚至不堪使用的情況,即沒有內存頁能夠分配給進程。

而系統為了保證正常運作,必須停止一些消耗內存的“大戶”,才可以釋放出更多的內存。這樣就必然激活“Out of Memory killer”機制,利用對應的啟發式算法,來關閉合適的進程。

在本例中,因為Jave 進程占用的內存量比較大,自然成了管控的目標。對于“Out of Memory killer”機制來說,其實際上是根據不同進程的打分情況,來決定其是否可以被關閉。對于Root 級別的進程來說,因為其地位比較重要,所以一般不會被輕易關閉,在評分上會得到3%的“優待”。用戶空間的進程可以對和其關聯的“oom_adj”內核參數,來調整得分情況,降低其被系統關閉的可能性。

例如對于上述Java 進程來說,可以執行“cat/proc/31076/oom_score”命令,來顯示顯示其當前的得分數。執行“echo -10 >/proc/31076/oom_score_adj”命令,可以調整與其對應的“oom_score_adj”參數,來降低評分值,這里將“oom_score_adj”參數的值設置為“-10”,您可以根據根據實際情況進行調整。之后再執行“cat/proc/31076/oom_score”命令,可以看到其評分降低了,這樣就降低了其被系統關閉的概率。

故障解決

根據以上分析,可以看到正是因為近來數據量的激增,導致該分析系統消耗的內存量很大,遠超平時的內存使用量,大量的占用可用內存,才被系統使用“Out of Memory killer”機制關閉。

執 行“cat/proc/sys/overcommit_memory/”命令,發現其數值為1,對于“overcommit_memory”參數來說,可以對“Out of Memory killer”機制進行控制,如果將其值設置為“0”,表示在用戶申請內存時,系統會對剩余內存進行檢測,如果發現可用內存無法滿足要求,就會申請失敗。

如果將其值設置為“1”,表示在用戶申請內存時,系統不進行可用內存量的檢測,直到使用的內存超過可用內存為止。如果將其值設置為“2”,表示當用戶一次申請的內存大小不允許超過可用內存值。這里為保證系統正常運行,最好將其設置為“0”。執行“sysctl -w vm.overcommit_memory=0”,“echo " vm.overcommit_memory=0">>/etc/sysctl.conf”命令,將該參數的值設置為“0”。這樣可以最大限度的避免可用內存過低,導致系統自行關閉目標進程的問題。

可以看出,該故障就是因為內存問題引發。為了保證該服務器順暢運行,很有必須對其內存使用情況進行合理優化。

例如在執行“free -m”命令時,會看到“cache”和“buffers”參數,這兩者其實都是系統用來保存曾經打開的文件信息之用,當系統需要讀取對應的文件時,會從“cached”和“buffers”內存區域中查找。如果可以找到的話,就直接將數據讀出,發送給目標程序,如果沒有的話,才從磁盤中讀取數據。利用系統的緩存機制,可以有效提高讀寫性能。

對 于Buffers 來 說,表示塊設備所占用的緩存頁,這包括直接讀取塊設備、文件系統元數據等使用的緩存頁。Cached 表示普通文件所占用的緩存頁,其將讀取過的數據保存起來,在重新讀取時如果發現需要的數據,將不需要重新讀取磁盤。對于Cached 來說,會將緩存的數據按照讀取的頻度進來管理,將最頻繁讀取的數據保存到易于找到的位置,將不容易讀取的內容排列在后面,對于最不經常讀取的數據則進行刪除。對于Linux來說,提供了自動釋放Cache的機制,但是為了提高靈活性,可以手動處理。

例如執行以下命令:

可以分別釋放Page Cache,釋放文件節點緩存和目錄項緩存,釋放Page cache、dentries 和nodes 緩存。

注意,在手動釋放之前,可以執行“sync”命令,將所有未寫的系統緩沖區寫到磁盤中,其中包含已修改的i-node、已延遲的塊 I/O 和讀寫映射文件。Linux 使用的基于分頁存取的內存管理機制為了充分利用物理內存,系統就會根據情況將物理內存中不常用的數據塊自動交換到SWAP 虛擬內存之中。

在系統內核參數中,“swappiness”的值掌控使用SWAP 分區的比例。執行“cat/proc/sys/ym/swappiness”命令,可以查看該參數的值,其默認為60,表示內存使用到40%的時候,才開始使用虛擬內存。

為了盡可能的使用內存,可以將它修改為合適的值,例如,執行“sysctl vm.swappiness=20”命令,將其設置為20,這樣的話,只有當內存使用到80%時,才可以開始使用虛擬內存等。而如果想永久保存修改的話,則可以打開“/etc/sysctl.conf”文件,并在其中添加“vm.swappiness=x”行即可,其中的“x”表示的是具體的數值。

對于Linux 文件系統來說,會使用Page cache 來優化文件讀寫操作。對于讀寫的數據都緩存到Page Cahce中,在執行上述“free -m”命令時,在“Cached”中顯示的就是該緩存信息。在讀文件時,會現在Page Cache 中查找,如果找到就直接讀取,否則的話再從磁盤讀取文件,并寫入到Page Cahce 中。在寫入數據時,會先將其寫入到Page Cache,并打上“dirty”標記,寫入緩存中的數據會定期批量保存到文件系統中。

對于Page Cache 來說,系統內核參數“vm.dirty_background_ratio”的作用是,當緩存中的帶有“Dirty”標記的頁的數量達到了系統內存的某個比率時,系統才將緩存的數據頁異步寫入磁盤。

例如執行“sysctl -w vm.dirty_background_ratio=5”命令,將其設置為5%,就是一個比較合理的數值。內核參數“vm.dirty_ratio”的作用是當緩存的臟頁數量達到系統內存某個比率時,系統必須將緩存臟頁刷入磁盤,這主要是為了避免丟失數據。執行“sysctl-w vm.dirty_ ratio=10”命令,將該比率設置為10%,則是比較合理的數值。

如果該值過大,就會很容易造成當系統將臟頁緩存刷入磁盤時,引發其他程序在讀寫數據時觸發I/O 阻塞的情況。

猜你喜歡
進程設置系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
地鐵出入段線轉換軌設置
主站蜘蛛池模板: 国产日韩丝袜一二三区| 亚洲国产日韩在线观看| 久久天天躁夜夜躁狠狠| 国产在线观看一区精品| 国产a网站| 亚洲水蜜桃久久综合网站 | 亚洲日本韩在线观看| 99久视频| 久久天天躁狠狠躁夜夜2020一| 欧美日本在线| 精品伊人久久大香线蕉网站| 国产人成网线在线播放va| 噜噜噜综合亚洲| 国产乱人伦AV在线A| 欧美在线视频a| AV色爱天堂网| 特级做a爰片毛片免费69| 精品在线免费播放| 人妻无码中文字幕一区二区三区| aⅴ免费在线观看| 欧美国产在线精品17p| 日韩欧美国产三级| 2022国产91精品久久久久久| 精品国产成人高清在线| 在线看AV天堂| 亚洲a级在线观看| 日韩欧美国产区| 在线国产你懂的| 国产特一级毛片| 国产一线在线| 中国黄色一级视频| 全部免费特黄特色大片视频| 在线观看亚洲成人| 日韩黄色在线| 日韩成人午夜| 国产Av无码精品色午夜| 免费国产一级 片内射老| 欧美a在线看| 欧美另类精品一区二区三区| 日本a∨在线观看| 9丨情侣偷在线精品国产| 精品無碼一區在線觀看 | 美女啪啪无遮挡| 中文字幕在线欧美| 国产情精品嫩草影院88av| 永久毛片在线播| 91视频区| 欧美a√在线| 国产精品13页| 久久久久88色偷偷| 精品成人一区二区| 欧美激情二区三区| 成人一级免费视频| 四虎永久免费地址在线网站| 久久永久视频| 亚洲国产清纯| 农村乱人伦一区二区| 国产99在线观看| 欧美日韩亚洲国产| 亚洲欧美日韩色图| 丁香六月综合网| 99久久精品国产综合婷婷| 国内精品视频区在线2021| 免费人成网站在线高清| 亚洲日韩精品综合在线一区二区| 国内老司机精品视频在线播出| 性喷潮久久久久久久久| 精品91视频| 丁香婷婷久久| 在线观看国产精美视频| 无码电影在线观看| 欧美成在线视频| 婷婷六月综合| 国产大片喷水在线在线视频| 亚洲天堂视频在线观看免费| 一区二区三区国产精品视频| 久久综合伊人77777| 国产一区二区福利| 欧美成人一区午夜福利在线| 亚洲视频无码| 欧美成一级| 欧美劲爆第一页|