日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转载)在服务器上排除问题的头5分钟

發布時間:2023/12/9 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转载)在服务器上排除问题的头5分钟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

盡可能搞清楚問題的前因后果

不要一下子就扎到服務器前面,你需要先搞明白這臺服務器有多少已知的情況,還有故障的具體情況,不然你很有可能是在無的放矢 必須要搞清楚的問題:
  • 故障的表現是什么?無響應?報錯?
  • 故障是什么時候發現的?
  • 故障是否可以重現?
  • 有沒有出現的規律(比如每小時一次)
  • 最后一次對整個平臺進行更新的內容是什么(代碼、服務器)?
  • 故障影響的特定用戶群是什么樣的(已登錄的、退出的、某個地域的...)?
  • 基礎架構(物理的、邏輯的)的文檔是否能找到?
  • 是否有監控平臺可用?
  • 是否有日志可以查看?
最后兩個是最方便的信息來源,不過別抱太大希望,基本上它們都不會有,只能再繼續摸索

有誰在?

[html]?view plaincopyprint?
  • $?w??
  • $?last??

  • 用這兩個命令查看都有誰在線,有哪些用戶訪問過。這不是什么關鍵步驟,不過最好別在其他用戶正在干活的時候來調試系統。有道是一山不容二虎嘛

    之前發生了什么?

    [html]?view plaincopyprint?
  • $?history??

  • 查看一下之前服務器上執行過的命令??匆幌驴偸菦]錯的,加上前面看的誰登錄過的信息,應該有點用。另外,作為admin要注意,不用利用自己的權限去侵犯別人的隱私! 到這里先提醒一下,查看history的時候需要更新一下HISTTIMEFORMAT環境變量來顯示這些命令執行的時間。(ps:個人補充) 配置HISTTIMEFORMAT可使用如下命令: [html]?view plaincopyprint?
  • $?export?HISTTIMEFORMAT="%F?%T?"??


  • 現在運行的進程

    [html]?view plaincopyprint?
  • $?pstree?-a??
  • $ps?aux??

  • 這都是查看現有進程的。ps aux的結果比較雜亂(ps:個人不認同,ps aux可以用過管道+grep進行過濾,pstree可沒有這功能),pstree -a的結果比較簡單明了,可以看到正在運行的進程以及相關用戶

    監聽的網絡服務

    [html]?view plaincopyprint?
  • $?netstat?-ntlp??
  • $?netstat?-nulp??
  • $?netstat?-nxlp??

  • 我一般都分開運行這三個命令,不想一下子看到列出一大堆所有的服務。netstat -nalp倒也可以。 找到所有正在運行的服務,檢查它們是否應該運行。查看各個監聽端口。 通常我們建議每臺服務器上運行的服務少一點,必要時可以增加服務器。如果你看到一臺服務器上有三四個監聽端口開著,那還是做個記錄,回頭有空的時候清理一下,重新組織一下服務器

    CPU和內存

    [html]?view plaincopyprint?
  • $?free?-m??
  • $?uptime??
  • $?top??

  • 注意以下問題:
    • 還有空閑的內存嗎?服務器是否正在內存和硬盤之間進行swap?
    • 還有剩余的CPU嗎?服務器是幾核的?是否某些CPU核負載過多了?
    • 服務器最大的負載來自什么地方?平均負載是多少?

    硬件

    [html]?view plaincopyprint?
  • $?lspci??
  • $?dmidecode??
  • $?ethtool??

  • 我覺得主要是使用ethtool查看網卡是否設置好?是否正運行在半雙工狀態?速度是10MBps?有沒有TX/RX報錯?

    IO性能

    [html]?view plaincopyprint?
  • dstat?--top-io?--top-bio??

  • 我這里只寫了一個我會用而且感覺最好用的dstat。用它可以看道誰正在進行IO:是不是MYSQL吃掉了所有的系統資源?還是你的PHP進程?

    系統日志和內核消息

    [html]?view plaincopyprint?
  • $?dmesg??
  • $?less?/var/log/auth.log??

    • 查看錯誤和警告信息,比如看看是不是連接數過多導致?
    • 看看是否有硬件錯誤或文件系統錯誤?
    • 分析是否能將這些錯誤時間和前面發現的疑點進行時間上的對比

    定時任務

    [html]?view plaincopyprint?
  • $?ls?/etc/cron*?|?cat??
  • $?for?user?in?$(cat?/etc/passwd?|?awk?-F?":"?'{print?$1}');?do?crontab?-l?-u?$user;?done??
  • (ps:這里我改寫了部分linux命令使用,哈哈,雖然是轉載,但是也要有我自己的風格在里面)
    • 是否某個定時任務運行過于頻繁?
    • 是否有些用戶提交了隱藏的定時任務?
    • 在出現故障的時候,是否正好有某個備份額任務正在執行?

    應用系統日志

    這里分析的東西可就多了,不過恐怕你作為運維人員是沒功夫仔細研究它的。關注那么明顯的問題,比如在一個典型的LAMP應用環境里:
    • Apache&Nginx;查詢訪問和錯誤日志,直接找5××錯誤,再看是否有limit_zone錯誤
    • Mysql;在mysql.log找錯誤信息,看看有沒有結構損壞的表,是否有innodb修復進程正在運行,是否有disk/index/query問題
    • PHP-FPM:如果設定了php-slow日志,直接找錯誤信息

    結論

    經過這5分鐘之后,你應該對如下情況比較清楚了:
    • 在服務器上運行的都是些啥?
    • 這個故障看起來是和IO/硬件/網絡或者系統配置相關
    • 這個故障是否有你熟悉的一些特征?比如數據庫索引使用不當,或者太多的apache后臺進程

    http://blog.csdn.net/wzy_1988/article/details/12355103

    轉載于:https://www.cnblogs.com/bluewelkin/p/3944929.html

    總結

    以上是生活随笔為你收集整理的(转载)在服务器上排除问题的头5分钟的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。