1 / 46

系統資源控制與管理

系統資源控制與管理. 監視系統資源 檢視行程資訊 終止行程 排程管理. 管理執行中的行程. 在系統中每位使用者都能執行多個程式,每個程式又可能分成數個行程執行。某些行程會佔用大量的系統資源,造成系統負載過重。 做為管理者,必須掌握系統中最消耗 CPU 資源的行程,以維持系統之整體效能,因隨時監看系統的狀態也是管理者的一項重要工作。. 監視系統資源的使用狀況 top 指令. 監視系統資源的使用狀況. 執行 top 指令,會周期性地更新內容,顯示最新的系統狀況 預設是以 CPU 的負載狀況排序。 按 [M] 鍵改成以記憶體的使用率。

jam
Télécharger la présentation

系統資源控制與管理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 系統資源控制與管理 監視系統資源 檢視行程資訊 終止行程 排程管理

  2. 管理執行中的行程 • 在系統中每位使用者都能執行多個程式,每個程式又可能分成數個行程執行。某些行程會佔用大量的系統資源,造成系統負載過重。 • 做為管理者,必須掌握系統中最消耗 CPU 資源的行程,以維持系統之整體效能,因隨時監看系統的狀態也是管理者的一項重要工作。

  3. 監視系統資源的使用狀況top指令

  4. 監視系統資源的使用狀況 • 執行 top指令,會周期性地更新內容,顯示最新的系統狀況 • 預設是以 CPU 的負載狀況排序。 • 按 [M] 鍵改成以記憶體的使用率。 • 按 [T] 鍵以執行的時間排序。 • 按 [P] 鍵可改回預設值。

  5. 行程類型 子行程(Child Process): 由其他行程所產生出來的行程 父行程(Parent Process): 為一個行程的名稱,可產生一個或多個 子行程。 殭屍行程(Zombie): 行程的資源無法釋放的狀態

  6. 殭屍行程 • 所謂的殭屍,是指『父母不知道的死孩子』。 • 因程式可能分為數個行程執行,當某個行程又產生另一個行程時,原先的行程就稱為父行程(parent),從父行程中產生的新行程,稱之為子行程(child)。 • 倘若子行程已經當掉 (形同死亡),而其父行程不知子行程早已死去,無法將子行程佔用的系統資源回收,此時這個子行程就變成殭屍。

  7. 監視特定使用者 • 執行 top指令,會監視系統中全部的行程,假如只想監控某位特定的使用者,只需按下 [u] 鍵,然後指定使用者帳號名稱即可:

  8. 結束執行中的行程 • 假設發覺某個行程佔用太多系統資源,或使用者執行規定以外的程式,則可從 top 內直接將其刪除:

  9. 結束執行中的行程

  10. 檢視行程資訊-PS

  11. 報告執行中的行程

  12. 報告執行中的行程

  13. 觀察其他使用者的行程 • 查看其他使用者正在執行的行程

  14. 查看背景執行的行程 • 使用 ps指令,所觀察到的行程列表,都是在前景執行的行程,並非所有行程都在前景執行,隱藏在背景裡執行之行程也是不少的 • 觀察系統和每位使用者執行中的全部行程,加上 "aux" 參數

  15. 替行程清單排序

  16. 搭配其他指令查詢特定行程

  17. 搭配其他指令查詢特定行程 • 上面的效果類似 "uU" 參數:

  18. 終止行程-kill

  19. 刪除執行中的行程

  20. 刪除執行中的行程 • kill指令預設是使用參數 “-15”,此參數會中斷正在執行的行程,所以一般只需使用 kill指令加上欲刪除行程的 PID,便可刪除該行程。 • 若遇到無法順利刪除的行程,就需要再加上其他的參數:

  21. 如何將目前登入的使用者踢出系統? • 當發現有某使用者佔用了太多的系統資源,或者有異常行為,要將其踢出系統。 • 先執行 who指令,找出使用者登入的終端機代號,接著再以 ps指令,找出該終端機正在執行的行程中,行程識別碼 PID 編號最小者,執行 kill - 9指令,將此行程強制刪除,即可將使用者踢出系統。

  22. 行程優先權控制 • 調整優先權會影響程式執行的速度 • nice 程式優先值設定 • nice –n 5 程式名稱 • renice 變更優先值 • renice 5 (-20~+19) PID • 一般帳號只能將程式速度調慢

  23. nice值比較 • # seq 500000 > /tmp/1.txt# time seq 500000 > /tmp/1.txt • # time nice –n -20 seq 500000 > /tmp/1.txt (最快) • # time nice –n 19 seq 500000 > /tmp/1.txt (最慢)

  24. 排程工作 • 利用排程解決重複性或是需要指定時間的工作。

  25. 排程的 crond 常駐指令 • crond每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作,便會自動執行該工作。而 Linux 所排程的工作主要分成以下 2 類: • 系統執行的工作 • 個人執行的工作

  26. 排程設定檔的寫法 • 排程設定檔的格式如下,除了 Command 是每次都必須指定的欄位以外,其他欄位皆可視需求自行決定是否指定,不指定的欄位,填上* 即可。

  27. 排程設定檔的寫法

  28. 排程設定檔的寫法 • 指定每小時的第 1 分鐘執行 program -a -b -c指令: • 指定每天的 4 點 20 分執行 program指令:

  29. 排程設定檔的寫法 • 指定每月 9 日的 3 點 50 分執行 program指令: • 指定每年的 9 月 8 日 0 點 1 分執行 program指令:

  30. 排程設定檔的寫法 • 指定每星期日 4 點 9 分執行 program 指令: • 如果同時指定多個不連續的時間,則可在時間跟時間之間用 “,” 區隔開來。 • 以下指定每月 1 日及 15 日的 2 點 20 分執行 program指令:

  31. 排程設定檔的寫法 • 如果要指定連續的時間,則可用 “-” 連接兩段時間。 • 以下指定每天1 點至 4 點的第 25 分鐘執行 program指令:

  32. 排程設定檔的寫法 • 若要指定週期性的時間,則可用 “/” 加上 “時間間隔” 指定。例如以下範例指定每隔 10 分鐘執行一次 program指令: • 指定每月隔 10 天的 5 點 35 分執行一次 program指令:

  33. 接下頁 排程的系統工作 • /etc/crontab 檔是 Linux 系統工作的排程設定檔

  34. 排程的系統工作

  35. 排程的系統工作 • 在上述的系統工作排程設定檔中,crond 排程指令會每小時、每天、每週及每月執行一次 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 及 /etc/cron.monthly 目錄中的所有設定檔。

  36. 排程的個人工作 • 除了上述排程的系統工作以外,所有使用者可利用 crontab指令,自行設定要定期執行的工作。 • 執行 crontab -e指令,編輯自己的排程設定檔,並在此檔加入要定期執行的工作。

  37. 使用者新增排程工作 • 例如指定每天的 14 點 55 分執行 tar czvf backup/backup.tar work/*指令,將其家目錄中 work 子目錄下的所有檔案,打包並壓縮後,備份到家目錄 backup 子目錄下 • 而crond指令在 14 點 55 分執行了 使用者指定的指令之後,便會將輸出結果或錯誤訊息,以 E-mail 寄送給該使用者。

  38. 使用者檢視目前排程的工作 • 要知道目前自己排程的工作,可執行 crontab -l指令查詢:

  39. 使用者刪除排程的工作 • 如果不想再定期執行排程中的工作,則可執行 crontab -r指令刪除所有排程的工作:

  40. 管理者可管理所有使用者排程的工作 • root 系統管理者除了可執行crontab指令,設定自己的程排工作外,亦可管理一般使用者的排程工作 • 另外管理者也可執行 crontab -l -u tony指令列出 tony 使用者目前排程的工作;執行 crontab -r -u tony指令刪除 tony 使用者所有排程的工作。

  41. 個人排程設定檔擺放的位置 • 每個使用者排程工作的設定檔會被儲存在 /var/spool/cron 目錄下,以帳號名稱為檔名。 • 這些設定檔只允許 root 讀寫,一般使用者並沒有權限讀取此排程設定檔。

  42. 排程程式的輸出結果 • crond指令預設會將執行的結果及錯誤訊息,以 E-mail 的方式寄給要求執行的使用者。您如果不想收到這些郵件,可加入以下所述的內容,將執行結果導向到一個記錄檔

  43. 排程程式的輸出結果 • 下例會將執行結果及錯誤訊息,全部導向指定的記錄檔: • 下例將不會儲存所有執行結果及錯誤訊息:

  44. 設定執行一次的排程工作 • 指定關機日期

  45. 查詢及刪除排程工作 • 設定好的排程如果臨時變更,或想查詢或刪除排程呢? • 查詢 at 指令所設定排程的 atq 指令:

  46. 查詢及刪除排程工作 • 刪除排程工作,用atrm指令: • atq及atrm 指令,也可分別用 at -l及 at -d來代替。

More Related