51CTO學習筆記--Linux運維故障排查思路與系統調優技巧視頻課程
第一課 Linux運維經驗分享與思路
1、一般把主機名,寫到hosts下 127.0.0.1 hostname,因爲很多應用要解析到本地。oracle沒有這個解析可能啓動不了。
2、註釋掉UUID以及MAC地址,需要綁定網卡的時候,這個可能會有影響。
3、磁盤滿了無法啓動, var下木有空間,無法創創建PID等文件,導致文件無法啓動,按e 進入single 然後b 重啓進入單用戶模式。
4、ssh登陸系統策略
/etc/ssh/sshd.conf port 改成5位數 設置 允許IP
permitroot 改爲 no
使用祕鑰登錄 可以關閉 passwordauth
GSSAPIAuthentication no 以及UseDNS no 提高ssh鏈接速度
5、用戶權限策略
禁止root用戶遠程登錄系統,授權僅普通用戶登錄系統,需要管理員權限執行 sudo,避免root用戶登錄。
/etc/sudoers (普通用戶切換到root權限,sudo 時不需要加密碼)
liqilong ALL=(ALL) NOPASSWD: ALL
6、更新yum源以及必要軟件安裝
常用的yum源:epel、repoforge軟件更新快 系統升級 yum update
7、定時自動更新服務器時間
1、) crontab 推薦服務器 time-a.nist.gov ntp.sjtu.edu.cn
/usr/sbin/ntpdate ntp.sjtu.edu.cn >> /var/log/ntp.log 2>&1;
/sbin/hwclock -w
執行同步,以及保存
2、) 架設ntp server /etc/ntp.conf
8、精簡開機自啓動服務
線上服務建議開啓的服務:crond,network,syslog,sshd,iptables,udev-post (資源安全設置),sysstat(系統負載、資源監控)
全部關閉
for serv in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $serv off;done
然後開啓需要的服務
for serv in ‘crond network syslog sshd iptables udev-post sysstat;do chkconfig --level 3 $serv on;done
9、刪除無關用戶組、用戶
查看組 more /etc/group 查看用戶 /etc/passwd
10、定時自動清理垃圾文件
du -sh ./* 查看目錄裏 文件的大小
ls -al 查看全部文件(使用習慣)
/var/spool/cron 每個用戶的定時任務都會生成相應的目錄
11、重要文件安全策略(重要文件加鎖,禁止修改)
chattr +i /etc/sudoers (加鎖) chattr -i (去鎖)
chattr +i /etc/shadow /etc/passwd /etc/grub.conf
12、內核參數優化
1、關注ulimit命令 ulimit -a 查看相關參數
需要重點關注:ulimit -c -f -n -u
ulimit -c core file 類似於 debug,調試程序 ulimit -c unlimited 打開core file
ulimit -f file size 限制文件大小
ulimit -n open file 最大打開文件個數,大一點 一般 65536,tomcat 可能是404,沒有更多的文件可以打開。
ulimit -u 最大用戶進程數,某個用戶的最大進程數,一般不需要修改,系統一般設置成最大值。
臨時生效,永久生效需要配置文件 /etc/security/limits.conf 以及 /etc/security/limits.d/20-nproc 兩個同時配置,20-nproc生效,max user processes 設置在20-nproc
/etc/sysctl.conf
net.ipv4.ip_forward = 0 ,默認關閉,要做代理服務器或nat需要打開
* soft nofile 65536 最大打開文件個數
* hard nofile 65536
13、系統故障排查關注點
1、tail -f /var/log/messages #應用日誌查詢
2、tail -f /var/log/secure #登陸日誌查詢
3、dmesg #系統日誌查詢(內存信息,系統重啓保存在/var/log/dmesg)
4、/var/tmp, /tmp #容易***點查詢,權限777
5、crontab -l、/etc/crontab #計劃任務查詢(經常***對象)
/etc/cron.d 目錄下會被 crontab調用, 各個目錄(cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/)裏面的文件
第二課 Linux系統性能優化思路和方法
一、影響Linux性能的各種因素
1、系統硬件資源
(1)CPU 個數 頻率
processor、physical id 、cpu cores(每個CPU核數)、
如何判斷CPU 超線程:核數是 physical id 、cpu cores 的兩倍使用了超線程
消耗CPU的業務:動態web服務,mail服務
(2)內存 64位系統、磁盤操作改到內存中 swap分區:任何時候都需要,物理內存足夠大,swap可以小點 , 服務器內存大於16G,swap可以設爲16G,小於16G,swap=物理內存也可以是物理內存*2
消耗內存的業務:內存數據庫(redis、hbase、mongodb)讀寫在內存,支持大併發
(3)磁盤IO
RAID技術:RAID0/1/5/01/10 性能、安全性,RAID1 互爲鏡像 ,安全性 ; RAID 0 兩個磁盤 變爲一個; RAID5 帶奇偶校驗 ;RAID10 底層兩個磁盤 RAID0 然後再RAID1,RAID10 安全性、性能 ;數據庫重要 RAID10。
消耗磁盤的業務:數據庫服務器、、、
(4)網絡帶寬
網卡/交換機的選擇:千兆網卡、接入交換全千兆、核心交換萬兆交換
操作系統雙網卡綁定:雙網卡的負載均衡或者累加
消耗寬帶的業務:hadoop平臺,視頻業務平臺
2、操作系統相關資源
系統安裝優化、內核參數優化、文件系統優化(xfs高性能文件系統,linux 3.10內核開始默認支持)
讀操作頻繁,同時小文件衆多的應用:首選ext4文件系統,接下來依次是xfs、ext3
寫操作頻繁的應用:首選是xfs、接下來是ext4和ext3
二、Linux性能優化工具
1、cpu性能評估工具
(1)vmstat 3 5 每三秒輸出一次,輸出5次
procs r:運行和等待cpu時間片的進程數,這個值如果長期大於系統CPU個數,說明CPU不足,需要增加CPU核數
b:等待資源的進程數,長期比較大,CPU不足
memory :swap 切換到內存交換區的內存數量,(單位k)
buff表示 buffer cache 一般是對塊設備的讀寫才需要緩衝。
cache 表示page cache 的內存數量,一般作爲文件系統caches,頻繁訪問的文件都會被cached,如果cached值較大。說明caches的文件較多
swap :si 由磁盤進入內存 經常非常大內存不足
so 內存進入磁盤 經常非常大內存不足
IO : bi 從塊設備讀入數據的總量(讀磁盤)(每秒kb)
bo 寫入塊設備數據的總量(寫磁盤)(每秒kb)
bi+bo 超過1000,並且wa值較大,則表示 系統磁盤有問題,應該考慮提高磁盤的書寫性能。
system : in 某一時間間隔中觀測到的每秒設備中斷數
cs 每秒產生的上下文切換
2個值越大,由內核消耗的CPU時間會越多
CPU : us 用戶進程消耗的CPU時間百分比。us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期大於50%,就需要考慮優化程序或算法。
sy 內核消耗的CPU時間百分比
us+ys 參考值80% 大於80%可能內存資源不足
id 顯示了CPU處在空閒狀態的時間百分比。
wa :io等待所佔用的CPU時間百分比,wa越高,說明等待越嚴重。
2、內存評估
(1) free -m
(2)sar/ pidstat -r 內存 -u cpu -d 磁盤
sar -r 3 5 每三秒輸出一次,輸出5次
sar -u 3 獲取內存3秒內的狀態
kbcommit 內存使用
pidstat -r -p 1 3 獲取內存3秒內的狀態 -p 進程 pid
3、硬盤性能
iostat -d 3 5 tps 每秒到物理磁盤的傳送數,也每秒的I/O流量
4、網絡性能
mtr 動態路由跟蹤
traceroute 靜態路由跟蹤
netstat -i 查看路由情況 -r 網絡接口
debug模式 Shift+F2
案例1、/etc/passwd root名稱改成別的名稱(test),權限不改。。。導致系統無法啓動, 能登錄,ps -ef發現所有進程都是 以test用戶啓動的
解決方案:單用戶模式修改/etc/paawd
案例2、遠程登錄以後,立即退出,本地登錄也是如此。密碼錯誤有提示。ulmit -n 設置 問題
tail -f /var/log/secure
error :PAM:pam_open_session():Permission denied.
pam_limits: could not set limit
解決方案:ulmit -n 6553600 基本滿足一般要求
limits.conf nofiles 設置過大,申請不到最大值回覆到默認的值1024。
歡迎打算使用阿里雲服務器的小夥伴,加我私聊!!QQ:3533470970 或直接領取阿里雲幸運券:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=b6h928qb&utm_source=b6h928qb