ubuntu新系統環境配置集錦
阿新 • • 發佈:2021-01-18
程序和效能
程序
程序:即執行在記憶體中,是執行中的程式的一個副本,具有相應的PID,存在生 命週期 第一個程序:init程序 centos7以後為systemd程序 LRU演算法:近期最少使用演算法,釋放記憶體 #程序具有的特性: 動態性:程序是程式的一次執行過程,是臨時的,有生命週期,是動態產生,動態消亡的 開發性:任何程序都可以同其他程序一起開發執行 獨立性:程序是系統進行資源分配和排程的一個獨立單位 結構性:程序由程式、資料和程序控制塊的三部分組成 #IPC程序間通訊 同一主機:管道,socket,訊號 不同主機:IP和埠號 程序優先順序 優先順序:0-139 數字越小優先順序越高 #程序優先順序 系統優先順序:0-139,數字越小,優先順序越高,各有140個執行佇列和過期佇列 實時優先順序:99-0 值最大優先順序最高 nice值:-20到19 對應系統優先順序100-139
程序分類
#作業系統分類
協作式多工:早期 windows 系統使用,即一個任務得到了CPU時間,除非它
自己放棄使用CPU,否則將完全霸佔CPU,所以任務之間需要協作——使用一段時
間的CPU,主動放棄使用。
搶佔式多工:Linux核心,CPU的總控制權在作業系統手中,作業系統會輪流
詢問每一個任務是否需要使用CPU,需要使用的話就讓它用,不過在一定時間後,作業系統會剝奪當前任務的CPU使用權,把它排在詢問佇列的最後,再去詢問下一個任務
#型別分類,兩者可相互轉化
守護程序:系統引導過程中啟動的程序,與終端無關
前臺程序:通過終端啟動的程序
程序狀態
#程序基本狀態 建立狀態:程序在建立時需要申請一個空白PCB(process control block程序 控制塊),向其中填寫控制和管理程序的資訊,完成資源分配。 就緒狀態:程序已準備好,已分配到所需資源,只要分配到CPU就能夠立即執行 執行狀態:程序處於就緒狀態被排程後,程序進入執行狀態 阻塞狀態:正在執行的程序由於某些事件(I/O請求,申請快取區失敗)而暫時 無法執行,程序受到阻塞。在滿足請求時進入就緒狀態等待系統呼叫 終止狀態:程序結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行 #程序的更多狀態 執行態:running 就緒態:ready 睡眠態:分為兩種,可中斷:interruptable,不可中斷:uninterruptable 停止態:stopped,暫停於記憶體,但不會被排程,除非手動啟動 僵死態:zombie,結束程序,父程序結束前,子程序不關閉
效能管理工具
ps 當前程序資訊 a #所有終端程序 u #更多資訊 x #包括守護程序 -e #顯示所有程序 -f #顯示完整格式資訊 -F #顯示更完整格式的程序資訊 -H #以程序層級格式顯示程序相關資訊 常用組合: aux -ef -eFH -eo mpstat #顯示cpu相關統計 來源於sysstat包 yum install -y sysstat prtstat 16738 #檢視單個程序狀態 -r #raw格式顯示 #程序實時狀態 top -d #指定重新整理時間間隔,預設為3秒 -n #重新整理多少次後退出 -H #執行緒模式 htop #比top功能更強,epel提供 --help #檢視幫助 -d #指定延遲時間 -s #以指定欄位進行排序 #負載查詢,檢視登入終端與登入時間 w uptime free #記憶體空間 -h #易讀格式 vmstat #虛擬記憶體資訊 -s #顯示記憶體的統計資料 iostat #提供更豐富的IO效能狀態資料 -c # 只顯示cpu行 -d # 顯示裝置(磁碟)使用狀態 -t # 在輸出中包括擴充套件磁碟滑鼠 iotop #監視磁碟I/O 第一行:Read和Write速率總計 第二行:實際的Read和Write速率 第三行:引數 iftop #顯示網路頻寬使用情況 安裝 yum install iftop -y pstree # 程序樹 -p # 顯示pid -T # 不顯示執行緒thread,預設顯示 glances 綜合監控工具 通過epel安裝 yum install -y glances lsof # 檢視程序開啟檔案 -c # 指定程序名開啟的檔案 -p # 指定pid開啟的檔案 -u # 指定使用者開啟的檔案 kill # 訊號傳送 -1 # 重新生效 -9 # 強制殺死 -18 # 繼續執行 -19 # 後臺休眠 pkill -9 -t pts/1 踢人:強制下線終端
系統中出現未知程式,將其刪除
ps aux 檢視程式pid
ll /proc/521/exe
刪除exe指向的檔案
作業管理
前臺作業:啟動後一直佔用終端
後臺作業:啟動後轉入後臺執行
使作業後臺執行
啟動中的作業:Ctrl+z
未啟動的作業:命令 &
作業控制:
jobs 檢視當前終端所有作業
fg 1 把第一個作業從後臺調回前臺
kill -18 %1 使第一個作業繼續執行
kill -19 %1 使第一個作業後臺休眠
並行執行
ls& ll& df&
wait 等待後臺作業完成後退出
計劃任務
at工具一次性任務
at 一次性任務 (由包at提供,需開啟atd服務)
標準輸出和標準錯誤以郵件方式顯示
at列隊檔案:
/var/spoll/at/
ubuntu存放在/var/spool/cron/atjobs
at [time]
at -l 檢視所有任務
-d 刪除計劃任務
格式:at 9:15 → ls → ctrl+d
echo ls | at 9:15
cron 週期性任務
#注:週期性計劃任務需開啟crond服務
centos 7 以後的版本: systemctl status crond
centos 6: service crond status
系統計劃任務: /etc/crontab主配置檔案,/etc/cron.d/子配置檔案 #注意檔案中的path路徑
計劃任務日誌: /var/log/cron
檔案格式:
SHELL=/bin/bash #預設的SHELL型別
PATH=/sbin:/bin:/usr/sbin:/usr/bin #預設的PATH變數值,
可修改為其它路徑
MAILTO=root #預設標準輸出和錯誤發郵件給root,可以指
向其它使用者
時間格式:
分鐘 小時 日期 月份 周幾
0 21 1 * *
*(代表取值範圍的所有值) 3,6(取多個時間值) 5-7(連續取值) */5(每5分鐘一次)
例:
#晚上9點10分執行echo命令
10 21 * * * wang /bin/echo "Howdy!"
#每3小時echo命令
0 */3 * * * wang /bin/echo “hello”
使用者計劃任務:
每個使用者有專門的計劃任務檔案/var/spool/cron/使用者名稱
預設路徑需要注意
標準輸出與標準錯誤傳送給對應的使用者
crontab 命令
-e 編輯計劃任務
-l 列出所有任務
-r 移除所有任務
例:11月每天的6-12點之間每隔2小時執行/app/bin/test.sh
crontab -l
0 6-12/2 * 11 * /app/bin/test.sh
cron任務中%有特殊含義,如需使用要加\符號
例:
30 2 * * * /bin/cp -a /etc/ /data/etc`date+\%F_\%T`