筆記RAID 和進程管理
? 廉價冗余磁盤陣列
– Redundant Arrays of Inexpensive Disks
– 通過硬件/軟件技術,將多個較小/低速的磁盤整合成一個大磁盤
– 陣列的價值:提升I/O效率、硬件級別的數據冗余
– 不同RAID級別的功能、特性各不相同
? RAID 0,條帶模式
– 同一個文檔分散存放在不同磁盤
– 並行寫入以提高效率
– 至少需要2塊磁盤
? RAID 1,鏡像模式
– 一個文檔復制成多份,分別寫入不同磁盤
– 多份拷貝提高可靠性,效率無提升
– 至少需要2塊磁盤
? RAID5,高性價比模式
– 相當於RAID0和RAID1的折中方案
– 需要至少一塊磁盤的容量來存放校驗數據
– 至少需要3塊磁盤
? RAID6,高性價比/可靠模式
– 相當於擴展的RAID5陣列,提供2份獨立校驗方案
– 需要至少兩塊磁盤的容量來存放校驗數據
– 至少需要4塊磁盤
? RAID 0+1/RAID 1+0
– 整合RAID 0、RAID 1的優勢
– 並行存取提高效率、鏡像寫入提高可靠性
– 至少需要4塊磁盤
RAID各級特點對比:
- RAID的實現
? 硬RAID:由RAID控制卡管理陣列
– 主板 --> 陣列卡 --> 磁盤 --> 操作系統 --> 數據
? 軟RAID:由操作系統來管理陣列
– 主板--> 磁盤-->操作系統-->RAID軟件 -->數據
二、進程管理
程序:靜態的代碼,占用磁盤的空間
進程:動態運行的代碼,占用CPU與內存
PID:標識進程
systemd:所有進程的父進程 PID=1
- 命令行 &:將命令行在後臺運行
- Ctrl + z 組合鍵:掛起當前進程(暫停並轉入後臺)
- jobs:列出當前用戶當前終端的後臺任務
- bg 編號:啟動指定編號的後臺任務
- fg 編號:將指定編號的後臺任務調入前臺運行
- kill [-9] PID...:殺死指定PID值的進程
- kill [-9] %n:殺死第n個後臺任務
- killall [-9] 進程名...:殺死指定名稱的所有進程
- pkill:根據指定的名稱或條件殺死進程
- 查看進程樹:
- pstree — Processes Tree
常用命令選項
– -a:顯示完整的命令行
– -p:列出對應PID編號 - ps aux 操作
– 列出正在運行的所有進程
用戶 進程ID %CPU %內存 虛擬內存 固定內存 終端 狀態 起始時間 CPU時間 程序指令
- ps aux | wc -l #統計正在運行進程的個數
- ps -elf 操作
– 列出正在運行的所有進程
PPID:父進程的PID號
- 進程動態排名
top 交互式工具
– 格式:top [-d 刷新秒數] [-U 用戶名]
[root@svr7 /]# top -d 1
按大寫P可以CPU進行排序
按大寫M可以內存進行排序
-
檢索進程
pgrep — Process Grep
– 用途:pgrep [選項]... 查詢條件常用命令選項
– -l:輸出進程名,而不僅僅是 PID
– -U:檢索指定用戶的進程
– -t:檢索指定終端的進程
– -x:精確匹配完整的進程名 - 查看進程:
pstree(結構顯示清晰)
ps aux (輸出進程內容詳細)
ps -elf(輸出進程的PPID)
top(動態排名,有CPU負載信息,可以進行排序)
pgrep(輸出簡潔,方便運用Shell腳本) - 殺死進程的不同方法
– Ctrl+c 組合鍵,中斷當前命令程序
– kill [-9] PID... 、kill [-9] %後臺任務編號
– killall [-9] 進程名...
– pkill 查找條件 - 殺死一個用戶開啟的所有進程(踢出一個用戶)
killall -9 -u 用戶名
三、日誌管理- 日誌的功能
- 系統和程序的“日記本”
– 記錄系統、程序運行中發生的各種事件
– 通過查看日誌,了解及排除故障
– 信息安全控制的“依據”
2.常見的日誌文件
/var/log/messages 記錄內核消息、各種服務的公共消息
/var/log/dmesg 記錄系統啟動過程的各種消息
/var/log/cron 記錄與cron計劃任務相關的消息
/var/log/maillog 記錄郵件收發相關的消息
/var/log/secure 記錄與訪問限制相關的安全消息 - tailf動態查看日誌消息
- users、who、w 命令
– 查看已登錄的用戶信息,詳細度不同 詳細程度一次遞增 - last、lastb 命令
– 查看最近登錄成功/失敗的用戶信息 -
Linux內核定義的事件緊急程度
– 分為 0~7 共8種優先級別
– 其數值越小,表示對應事件越緊急/重要0 EMERG(緊急) 會導致主機系統不可用的情況 1 ALERT(警告) 必須馬上采取措施解決的問題 2 CRIT(嚴重) 比較嚴重的情況 3 ERR(錯誤) 運行出現錯誤 4 WARNING(提醒) 可能會影響系統功能的事件 5 NOTICE(註意) 不會影響系統但值得註意 6 INFO(信息) 一般信息 7 DEBUG(調試) 程序或系統調試信息等
- 使用journalctl工具
? 提取由 systemd-journal 服務搜集的日誌
– 主要包括內核/系統日誌、服務日誌
? 常見用法
– journalctl | grep 關鍵詞
– journalctl -u 服務名 [-p 優先級]
[root@svr7 /]# systemctl restart httpd
[root@svr7 /]# journalctl | grep httpd
[root@svr7 /]# journalctl -u httpd -p 6
– journalctl -n 消息條數
– journalctl --since="yyyy-mm-dd HH:MM:SS" --until="yyyy-mm-dd HH:MM:SS"
- 列出最近10條重要程度在 ERR 及以上的日誌消息:journalctl -p 3 -n 10
- 列出所有與服務httpd相關的消息 journalctl -u httpd
- 列出前4個小時內新記錄的日誌
- 根據當前日期時間往前推4個小時,確定--since起始和--until結束時刻:
journalctl --since "2018-08-06 14:11" --until "2018-08-06 18:11"
補充:
/etc/hosts:提供域名解析,只為本機提供解析服務
解析優先級 :
瀏覽器輸入域名------>本機/etc/hosts--->/etc/resolv.conf--->DNSPATH:環境變量
PATH:提供命令搜尋路徑(執行命令時,會到PATH變量值路徑中尋找改程序,如果找到就執行,如果找不到輸出未找到)
- 根據當前日期時間往前推4個小時,確定--since起始和--until結束時刻:
筆記RAID 和進程管理