在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用6 個 Linux 運(yùn)維典型問題來分析處理問題的思路

Linux愛好者 ? 2018-01-13 10:37 ? 次閱讀

作為一名合格的 Linux 運(yùn)維工程師,一定要有一套清晰、明確的解決故障思路,當(dāng)問題出現(xiàn)時,才能迅速定位、解決問題,這里給出一個處理問題的一般思路:

重視報錯提示信息:每個錯誤的出現(xiàn),都是給出錯誤提示信息,一般情況下這個提示基本定位了問題的所在,因此一定要重視這個報錯信息,如果對這些錯誤信息視而不見,問題永遠(yuǎn)得不到解決。

查閱日志文件:有時候報錯信息只是給出了問題的表面現(xiàn)象,要想更深入的了解問題,必須查看相應(yīng)的日志文件,而日志文件又分為系統(tǒng)日志文件(/var/log)和應(yīng)用的日志文件,結(jié)合這兩個日志文件,一般就能定位問題所在。

分析、定位問題:這個過程是比較復(fù)雜的,根據(jù)報錯信息,結(jié)合日志文件,同時還要考慮其它相關(guān)情況,最終找到引起問題的原因。

解決問題:找到了問題出現(xiàn)的原因,解決問題就是很簡單的事情了。

從這個流程可以看出,解決問題的過程就是分析、查找問題的過程,一旦確定問題產(chǎn)生的原因,故障也就隨之解決了。

結(jié)合上面介紹的 Linux 運(yùn)維問題的解決思路后,下面我們挑選了6個比較典型的 Linux 運(yùn)維問題,來看看是如何分析和解決的:

問題 1:文件系統(tǒng)破壞導(dǎo)致系統(tǒng)無法啟動

Checking root filesystem

/dev/sda6 contains a file system with errors, check forced

An error occurred during the file system check

這個錯誤可以看出,操作系統(tǒng) / dev/sda6 分區(qū)文件系統(tǒng)出現(xiàn)了問題,這個問題發(fā)生的機(jī)率很高,通常引起這個問題的原因主要是系統(tǒng)突然斷電,引起文件系統(tǒng)結(jié)構(gòu)不一致,一般情況下,解決此問題的方法是采用 fsck 命令,進(jìn)行強(qiáng)制修復(fù)。

# umount /dev/sda6

# fsck.ext3 -y /dev/sda6

問題 2:“Argument list too long” 錯誤與解決方法

# crontab -e

編輯完后保存退出后,報錯 no space left on device

根據(jù)上面的報錯了解到是磁盤空間滿了,那么首先是檢查磁盤空間,

# df -h

查看到是 / var 磁盤分區(qū)空間已經(jīng)達(dá)到 100%,至此定位了問題所在。是 / var 磁盤空間飽滿導(dǎo)致,因為 crontab 會在保存時將文件信息寫到 / var 目錄下面,然而這個磁盤沒有空間了,所以報錯。

接著通過命令 du –sh * 命令檢查 / var 目錄下面的所有文件或者目錄的大小,發(fā)現(xiàn) / var/spool/clientmqueue 目錄占用了 / var 整個分區(qū)大小的 90%,那么 / var/spool/clientmqueue 目錄下的文件都是怎么產(chǎn)生的,能否刪除,基本上都是郵件信息,可以刪除

# rm *

/bin/rm :argument list too long

當(dāng)在 linux 系統(tǒng)中試圖傳遞太多參數(shù)給一個命令時,就會出現(xiàn) “argument list too long” 錯誤,這是 linux 系統(tǒng)一直以來都有的限制,查看這個限制可以通過命令 “getconf ARG_MAX” 來實現(xiàn),

# getconf ARG_MAX

# more /etc/issue 查看版本

解決方法:1、

# rm [a-n]* -rf

# rm [o-z]* -rf

2、使用 find 命令來刪除

# find /var/spool/clientmqueue –type f –print –exec rm –f {} ;

3、通過 shell 腳本

#/bin/bash

RM_DIR=’/var/spool/clientmqueue’

cd $RM_DIR

for I in `ls`

do

rm –f $i

done

4、重新編譯內(nèi)核

需要手動增加內(nèi)核中分配給命令行參數(shù)的頁數(shù),打開 kernel source 下面的 include/linux/binfmts.h 文件,找到如下行:

#denfine MAX_ARG_PAGES 32

將 32 改為更大的值,例如 64 或者 128,然后重新編譯內(nèi)核

問題 3:inode 耗盡導(dǎo)致應(yīng)用故障

客戶的一臺 Oracle 數(shù)據(jù)庫如武器在關(guān)機(jī)重啟后,Oracle 監(jiān)聽無法啟動,提示報錯 Linux error : No space left on device

從輸出信息看出來是因為磁盤耗盡導(dǎo)致監(jiān)聽無法啟動,因為 Oracle 在啟動監(jiān)聽時需要創(chuàng)建監(jiān)聽日志文件,于是首先查看磁盤空間使用情況

# df -h

從磁盤輸出信息可知,所有的分區(qū)磁盤空間都還有剩余不少,而 Oracle 監(jiān)聽寫日志的路徑在 / var 分區(qū)下,/var 下分區(qū)空間足夠。

解決思路:

既然錯誤提示語磁盤空間有關(guān),那就深入研究關(guān)于磁盤空間的問題,在 linux 系統(tǒng)中對磁盤空間的占用分為三個部分:第一個是物理磁盤空間,第二個是 inode 節(jié)點(diǎn)所占用的磁盤空間,第三個是 linux 用來存放信號量的空間,而平時接觸較多的是物理磁盤空間。既然不是物理磁盤空間的問題,接著就檢查是否是 inode 節(jié)點(diǎn)耗盡的問題,通過執(zhí)行命令 “df -i” 查看可用的 inode 節(jié)點(diǎn)。由輸出結(jié)果看出確實是因為 inode 耗盡導(dǎo)致無法寫入文件。

可以通過下面的命令查看某個磁盤分區(qū) inode 的總數(shù)

# dumpe2fs -h /dev/sda3 |grep ‘Inode count’

每個 inode 都有一個號碼,操作系統(tǒng)用 inode 號碼來區(qū)分不同的文件,通過‘ls -i’命令可以查看文件名對應(yīng)的 inode 號

如果要查看這個文件更詳細(xì)的 inode 信息,可以通過 stat 命令來實現(xiàn)

# stat install.log

解決問題

# find /var/spool/clientmqueue/ -name “*” -exec rm -rf {} ;

問題 4:文件已經(jīng)刪除,但是空間沒有釋放的原因

運(yùn)維監(jiān)控系統(tǒng)發(fā)來通知,報告一臺服務(wù)器空間滿了,登陸服務(wù)器查看,根分區(qū)確實滿了,這里先說一下服務(wù)器的一些刪除策略,由于 linux 沒有回收站功能,所以線上服務(wù)器上所有要刪除的文件都會先移到系統(tǒng) / tmp 目錄下,然后定期清除 / tmp 目錄下的數(shù)據(jù)。這個策略本身沒有什么問題,但是通過檢查發(fā)現(xiàn)這臺服務(wù)器的系統(tǒng)分區(qū)中并沒有單獨(dú)劃分 / tmp 分區(qū),這樣 / tmp 下的數(shù)據(jù)其實占用根分區(qū)的空間,既然找到了問題,那么刪除 / tmp 目錄下一些占用空間較大的數(shù)據(jù)文件即可。

# du -sh /tmp/* | sort -nr |head -3

通過命令發(fā)現(xiàn)在 / tmp 目錄下有個 66G 大小的文件 access_log,這個文件應(yīng)該是 apache 產(chǎn)生的訪問日志文件,從日志大小來看,應(yīng)該是很久沒有清理的 apache 日志文件了,基本判定是這個文件導(dǎo)致的根空間爆滿,在確認(rèn)此文件可以刪除后,執(zhí)行如下刪除命令,

# rm /tmp/access_Iog

# df -h

從輸出來看,根分區(qū)空間仍然沒有釋放,這是怎么回事

一般來說不會出現(xiàn)刪除文件后空間不釋放的情況,但是也存在例外,比如文件進(jìn)程鎖定,或者有進(jìn)程一直在向這個文件寫數(shù)據(jù),要理解這個問題,就需要知道 linux 下文件的存儲機(jī)制和存儲結(jié)構(gòu)。

一個文件在文件系統(tǒng)中存放分為兩個部分:數(shù)據(jù)部分和指針部分,指針位于文件系統(tǒng)的 meta-data 中,在將數(shù)據(jù)刪除后,這個指針就從 meta-data 中清除了,而數(shù)據(jù)部分存儲在磁盤中。在將數(shù)據(jù)對應(yīng)的指針從 meta-data 中清除后,文件數(shù)據(jù)部分占用的空間就可以被覆蓋并寫入新的內(nèi)容,之所以出現(xiàn)刪除 access_log 文件后,空間還沒有釋放,就是因為 httpd 進(jìn)程還在一直向這個文件寫入內(nèi)容,導(dǎo)致雖然刪除了 access_Ilog 文件,但是由于進(jìn)程鎖定,文件對應(yīng)的指針部分并未從 meta-data 中清除,而由于指針并未刪除,系統(tǒng)內(nèi)核就認(rèn)為文件并未被刪除,因此通過 df 命令查詢空間并未釋放。

問題排查:

既然有了解決思路,那么接下來看看是否有進(jìn)程一直在向 access_log 文件中寫入數(shù)據(jù),這里需要用到 linux 下的 losf 命令,通過這個命令可以獲取一個仍然被應(yīng)用程序占用的已刪除文件列表

# lsof | grep delete

從輸出可以看出,/tmp/access_log 文件被進(jìn)程 httpd 鎖定,而 httpd 進(jìn)程還一直向這個文件寫入日志數(shù)據(jù),最后一列的‘deleted’狀態(tài)說明這個日志文件已經(jīng)被刪除,但是由于進(jìn)程還在一直向此文件寫入數(shù)據(jù),因此空間并未釋放。

解決問題:

到這里問題就基本排查清楚了,解決這一類問題的方法有很多,最簡單的方法就是關(guān)閉或者重啟 httpd 進(jìn)程,當(dāng)然重啟操作系統(tǒng)也可以。不過這些并不是最好的辦法,對待這種進(jìn)程不停對文件寫日志的操作,要釋放文件占用的磁盤空間,最好的方法是在線清空這個文件,具體可以通過如下命令完成:

# echo “”>/tmp/access_log

通過這種方法,磁盤空間不但可以馬上釋放,也可以保障進(jìn)城繼續(xù)向文件寫入日志,這種方法經(jīng)常用于在線清理 apache /tomcat/nginx 等 web 服務(wù)產(chǎn)生的日志文件。

問題 5:"too many open files" 錯誤與解決方法

問題現(xiàn)象:這是一個基于 java 的 web 應(yīng)用系統(tǒng),在后臺添加數(shù)據(jù)時提示無法添加,于是登陸服務(wù)器查看 tomcat 日志,發(fā)現(xiàn)如下異常信息,java.io.IOException: Too many open files

通過這個報錯信息,基本判斷是系統(tǒng)可以用的文件描述符不夠了,由于 tomcat 服務(wù)室系統(tǒng) www 用戶啟動的,于是以 www 用戶登陸系統(tǒng),通過 ulimit –n 命令查看系統(tǒng)可以打開最大文件描述符的數(shù)量,輸出如下:

$ ulimit -n

65535

可以看到這臺服務(wù)器設(shè)置的最大可以打開的文件描述符已經(jīng)是 65535 了,這么大的值應(yīng)該夠用了,但是為什么提示這樣的錯誤呢

解決思路,這個案例涉及 ulimit 命令的使用

在使用 ulimit 時,有以下幾種使用方法:

1、 在用戶環(huán)境變量中加入

如果用戶使用的是 bash,那么可以在用戶目錄的環(huán)境變量文件. bashrc 或者. bash_profile 中加入 “ulimit –u128” 來限制用戶最多可以使用 128 個進(jìn)程

2、 在應(yīng)用程序的啟動腳本中加入

如果應(yīng)用程序是 tomcat,那么可以再 tomcat 的啟動腳本 startup.sh 中加入‘ulimit -n 65535’來限制用戶最多可以使用 65535 個文件描述符

3、 直接在 shell 命令終端執(zhí)行 ulimit 命令

這種方法的資源限制僅僅在執(zhí)行命令的終端生效,在退出或者和關(guān)閉終端后,設(shè)置失效,并且這個設(shè)置不影響其他 shell 終端

解決問題:

在了解 ulimit 知識后,接著上面的案例,既然 ulimit 設(shè)置沒有問題,那么一定是設(shè)置沒有生效導(dǎo)致的,接下來檢查下啟動 tomcat 的 www 用戶環(huán)境變量是否添加 ulimit 限制,檢查后發(fā)現(xiàn),www 用戶并無 ulimit 限制。于是繼續(xù)檢查 tomcat 啟動腳本 startup.sh 文件是否添加了 ulimit 限制,檢查后發(fā)現(xiàn)也沒有添加。最后考略是否將限制加到了 limits.conf 文件中,于是檢查 limits.conf 文件,操作如下

# cat /etc/security/limits.conf | grep www

www soft nofile 65535

www hard nofile 65535

從輸出可知,ulimit 限制加在 limits.conf 文件中,既然限制已經(jīng)添加了,配置也沒有什么錯,為何還會報錯,經(jīng)過思考,判斷只有一種可能,那就是 tomcat 的啟動時間早于 ulimit 資源限制的添加時間,于是首先查看下 tomcat 啟動時間,操作如下

# uptime

Up 283 days

# pgrep -f tomcat

4667

# ps -eo pid,lstart,etime|grep 4667

4667 Sat Jul 6 09;33:39 2013 77-05:26:02

從輸出可以看出,這臺服務(wù)器已經(jīng)有 283 沒有重啟了,而 tomcat 是在 2013 年 7 月 6 日 9 點(diǎn)啟動的,啟動了將近 77 天,接著繼續(xù)看看 limits.conf 文件的修改時間,

# stat /etc/security/limits.conf

通過 stat 命令清除的看到,limits.conf 文件最后的修改時間是 2013 年 7 月 12,晚于 tomcat 啟動時間,清楚問題后,解決問題的方法很簡單,重啟一下 tomcat 就可以了。

問題 6:Read-only file system 錯誤與解決方法

解析:出現(xiàn)這個問題的原因有很多種,可能是文件系統(tǒng)數(shù)據(jù)塊出現(xiàn)不一致導(dǎo)致的,也可能是磁盤故障造成的,主流 ext3/ext4 文件系統(tǒng)都有很強(qiáng)的自我修復(fù)機(jī)制,對于簡單的錯誤,文件系統(tǒng)一般都可以自行修復(fù),當(dāng)遇到致命錯誤無法修復(fù)的時候,文件系統(tǒng)為了保證數(shù)據(jù)一致性和安全,會暫時屏蔽文件系統(tǒng)的寫操作,講文件系統(tǒng) 變?yōu)橹蛔x,今兒出現(xiàn)了上面的 “read-only file system” 現(xiàn)象。

手工修復(fù)文件系統(tǒng)錯誤的命令式 fsck,在修復(fù)文件系統(tǒng)前,最好卸載文件系統(tǒng)所在的磁盤分區(qū)

# umount /www/data

Umount : /www/data: device is busy

提示無法卸載,可能是這個磁盤中還有文件對應(yīng)的進(jìn)程在運(yùn)行,檢查如下:

# fuser -m /dev/sdb1

/dev/sdb1: 8800

接著檢查一下 8800 端口對應(yīng)的什么進(jìn)程,

# ps -ef |grep 8800

檢查后發(fā)現(xiàn)時 apache 沒有關(guān)閉,停止 apache

# /usr/local/apache2/bin/apachectl stop

# umount /www/data

# fsck -V -a /dev/sdb1

# mount /dev/sdb1 /www/data

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11402

    瀏覽量

    212061

原文標(biāo)題:6 個 Linux 運(yùn)維典型問題,大牛的分析解決思路在這里

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux運(yùn)常見故障排查和處理的33技巧匯總

    從中總結(jié)經(jīng)驗,查找問題,匯總并分析故障的原因,這是一Linux運(yùn)工程師良好的習(xí)慣。每一次技術(shù)的突破,都經(jīng)歷著苦悶,伴隨著快樂,可我們還是
    的頭像 發(fā)表于 03-20 09:09 ?5626次閱讀

    Linux中常用的MySQL運(yùn)腳本

    Linux中,使用MySQL進(jìn)行常見的運(yùn)任務(wù)時,可以編寫一些腳本來簡化操作。以下是一些常用的MySQL運(yùn)腳本,希望對你的工作有所幫助。
    發(fā)表于 09-07 09:49 ?810次閱讀

    老男孩Linux運(yùn)培訓(xùn)教程

    `  繼《跟老男孩學(xué)習(xí)Linux運(yùn):Web集群實戰(zhàn)》和《跟老男孩學(xué)習(xí)Linux運(yùn):Shell
    發(fā)表于 12-15 15:16

    linux運(yùn)命令大全

    Linux高端運(yùn)學(xué)習(xí)需要掌握大量的命令及相關(guān)工具,通讀bash man page、掌握VIM使用、了解SSH是Linux高端運(yùn)
    發(fā)表于 03-15 16:36

    學(xué)習(xí)Linux運(yùn)發(fā)展方向

     現(xiàn)下Linux應(yīng)用廣泛,從桌面到服務(wù)器,從操作系統(tǒng)到企業(yè)應(yīng)用,Linux像雨后春筍般迅速成長,Linux人才需求持續(xù)升溫。其中Linux系統(tǒng)運(yùn)
    發(fā)表于 07-25 17:15

    (轉(zhuǎn))6 Linux 運(yùn)典型問題,大牛的分析解決思路在這里

    隨之解決了。結(jié)合上面介紹的 Linux 運(yùn)問題的解決思路后,下面我們挑選了6比較
    發(fā)表于 08-13 14:10

    Linux運(yùn)都要會哪些shell技能

    。兩者之間,shell幾乎是IT企業(yè)必須使用的運(yùn)自動化編程語言,特別是在運(yùn)工作中的服務(wù)監(jiān)控、業(yè)務(wù)快速部署、服務(wù)啟動停止、數(shù)據(jù)備份及處理、日制分析
    發(fā)表于 11-30 17:38

    2019年Linux運(yùn)工程師的高薪出路在哪

    早在2015年國家就提出了“供給側(cè)”改革思想,簡言之,就是告訴企業(yè)里的Linux運(yùn)工程師要從以往平時人肉部署各種業(yè)務(wù)環(huán)境,處理各種故障(負(fù)載高、CPU高、服務(wù)宕機(jī)、被攻擊),每天火燒
    發(fā)表于 01-28 18:02

    linux運(yùn)怎么排查

    linux運(yùn)排查常用命令(開發(fā)專享)
    發(fā)表于 11-11 06:34

    Linux運(yùn)常見故障排查和處理的33技巧匯總

    Linux運(yùn)常見故障排查和處理的33技巧匯總。作為linux
    的頭像 發(fā)表于 03-05 13:39 ?1.2w次閱讀

    2018年Linux運(yùn)必須抓住的前沿技能

    Linux運(yùn)作為眾多工作中需求人數(shù)最多,薪資待遇最高的崗位,本文重點(diǎn)介紹Linux運(yùn)的職業(yè),
    的頭像 發(fā)表于 03-26 15:55 ?8348次閱讀
    2018年<b class='flag-5'>Linux</b><b class='flag-5'>運(yùn)</b><b class='flag-5'>維</b>必須抓住的前沿技能

    運(yùn)工程師的四階段

    Linux系統(tǒng)目前主要應(yīng)用在企業(yè)服務(wù)器上,學(xué)習(xí)Linux,更多的是向Linux系統(tǒng)/運(yùn)工程師方向進(jìn)軍。比如云計算系統(tǒng)工程師,大數(shù)據(jù)
    的頭像 發(fā)表于 03-26 16:22 ?6025次閱讀

    如何定義linux運(yùn)工程師

    相信讀者們必定聽說過linux,也聽說過運(yùn)工程師。那么運(yùn)工程師是什么概念呢?
    的頭像 發(fā)表于 08-21 15:51 ?3333次閱讀

    Linux運(yùn)工程師的發(fā)展前景

    它是一非常新穎的崗位,目前從行業(yè)角度分析,隨著國內(nèi)軟件行業(yè)不斷發(fā)展壯大,越來越多的復(fù)雜系統(tǒng)應(yīng)運(yùn)而生,為了保證系統(tǒng)的穩(wěn)定運(yùn)行,必須要有足夠多的linux運(yùn)
    的頭像 發(fā)表于 08-21 15:57 ?3884次閱讀

    Linux運(yùn)經(jīng)常使用的40命令總結(jié)

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux運(yùn)經(jīng)常使用的40命令總結(jié)
    的頭像 發(fā)表于 11-22 11:14 ?2758次閱讀
    主站蜘蛛池模板: 羞羞色男人的天堂伊人久久 | 黑色丝袜美女被网站 | 久久综合狠狠综合久久 | 天天草天天爽 | 日本高清视频网站www | 特黄一级真人毛片 | 亚洲第一在线视频 | 午夜小视频免费 | 国产精品午夜寂寞视频 | 欧美在线视频免费播放 | 777kkk亚洲综合欧美色老头 | 5g影院欧美成人免费 | aaaaa级毛片免费视频 | 四虎库| 天天综合网久久 | 国产一级特黄高清在线大片 | 婷婷激情狠狠综合五月 | 丁香六月综合激情 | 免费视频现线观看 | 寂寞午夜影院 | 亚洲一级视频在线观看 | 黄a免费| 亚洲成人网在线 | 夜色爽| 午夜激情婷婷 | 日韩免费高清一级毛片 | 免费边摸边吃奶边叫床视频gif | 欧洲乱码专区一区二区三区四区 | 国产精品大全 | 欧美一级片免费在线观看 | 国产成人综合欧美精品久久 | 色91在线 | 日韩一区二区在线观看 | 激情六月婷婷开心丁香开心 | 亚洲一区视频 | 热re99久久精品国99热 | 自拍偷自拍亚洲精品被多人伦好爽 | 日本亚洲欧美国产日韩ay高清 | bt天堂在线www最新版资源网 | 天天操人人干 | 精品你懂的 |