RHEL7系統管理之核心管理
Kdump的工作機制是在核心崩潰時, 透過kexec 工具由BIOS啟動一個備用核心, 由備用核心執行一系列任務,儲存記憶體中崩潰核心的狀態, 供後續故障分析用。
本文預設AMD或INTEL X86_64架構, RHEL7系統環境.
Kdump是RHEL7中自帶的核心管理工具.在RHEL7.1之前的版本,kdump作為安裝完成之後的可選元件自動安裝,從RHEL7.1開始kdump被植入安裝介面,作為系統基礎工具供安裝選擇.
可以透過下面 直接RPM包安裝.
yum -y install kexec-tools rpm -q kexec-tools
同時,Kdump還配備了圖形化管理工具,可以透過下面 安裝.
yum -y install system-config-kdump
對於RHEL7.4及之後的版本,kdump支援INTEL IOMMU. 而不支援RHEL7.3及之前的版本.
kdump能監控系統核心執行狀態,其地位比較特殊. kdump的記憶體空間是在系統啟動時,由載入程式分配的,相對於系統核心,kdump記憶體是一個獨立的空間.
可以透過如下命令指定kdump的記憶體空間大小.
crashkernel=128M #為kdump保留128M的記憶體空間.
crashkernel的值可以設定成“auto",在一些擁有較大記憶體的系統中,利於實現Kdump的自動化管理.
crashkernel=auto
當然,crashkernel的值還可以透過如下形式實現更靈活的配置.
crashkernel=<範圍1>:<大小1>, <範圍2>:<大小2>
crashkernel=512M-2G:64M,2G-:128M #當系統記憶體在512M-2G之間時,為Kdump保留64M的記憶體空間;當系統記憶體大於2G時,為Kdump保留128M的記憶體空間.
還可以這樣:
crashkernel=128M@16M #為Kdump保留128M的記憶體空間,記憶體地址從16M(physical address 0x01000000)開始.
Kdump的配置在/etc/kdump.cnf中. kdump提供多種方式將捕獲到核心崩潰資料本地儲存或儲存到遠端主機.
#path /var/crash #kdump本地儲存目錄,預設是存放在/var/crash目錄下,可以根據使用習慣設定. path /usr/local/cores ... #raw /dev/vg/lv_kdump #kdump可以直接寫入移動介質. raw /dev/sdb1 ... #nfs my.server.com:/export/tmp #kdump可以透過NFS儲存到網路上其它儲存裝置中. nfs test.example.com:/export/cores ... #ssh user@my.server.com #kdump可以透過SSH傳輸協議,儲存遠端主機上. #sshkey /root/.ssh/kdump_id_rsa ssh user@test.example.com sshkey /root/.ssh/mykey
kdump.conf中還可以在 core_collector makedumpfile 選項後加上" -c ", 使kdump檔案能夠被壓縮,以節省儲存空間.
core_collector makedumpfile -c systemctl start kdump.service #啟動Kdump服務 systemctl enable kdump.service #使Kdump開機自啟 systemctl is-active kdump #檢查Kdump是否已啟動 active echo 1 > /proc/sys/kernel/sysrq #模擬核心崩潰,檢查/var/crash/是否自動儲存Kdump捕獲的核心崩潰資料, 以確定Kdump是否正常工作 echo c > /proc/sysrq-trigger
需要注意的是
(1)在RHEL7之前的版本中,kdump的儲存目錄會隨著kdump服務的啟動而由系統自動建立. RHEL7中,如果改變了kdump的儲存目錄,則必須在啟動kdump服務之前,手動建立kdump的儲存目錄,否則kdump服務會啟動失敗.
(2)如果在安裝介面禁用了kdump, 而安裝完成之後再透過systemctl start kdump啟動kdump, 會報記憶體不足無法啟動的錯誤. kdump的記憶體空間是在核心載入之前由boot分配的, 所以必須修改boot. 最好使用kdump的圖形管理工具 system-config-kdump 載入kdump的預設配置, 使kdump處於可用狀態, 然後重啟系統, systemctl status kdump 服務處於啟用狀態(active).
利用crash功能元件能夠分析 核心崩潰時的網路、磁碟、CPU、系統核心狀態,快速定位故障點.
crash元件可以透過RPM包安裝
sudo yum -y install crash #安裝crash sudo debuginfo-install kernel #安裝核心除錯模組 sudo crash /usr/lib/debug/lib/modules//vmlinux /var/crash//vmcore #啟動crash除錯
測試一下:
crash基本除錯命令:
crash>log #崩潰時日誌記錄
crash>bt #崩潰時的堆疊資訊
crash>vm #崩潰時的記憶體狀態
crash>ps #崩潰時的程式狀態
crash>files #崩潰時的開啟的檔案
crash>exit #退出crash
RHEL7中提供三種核心調校方法:
(1)使用sysctl 命令;
(2)修改/etc/sysctl.d/ 目錄下的核心配置檔案;
(3)透過 在/proc/sys 目錄下掛載虛擬檔案系統;
可以列出、讀取、設定核心引數, 還可以將引數設定為臨時或永久.
sysctl -a #列出所有可調校的項 sysctl kernel.version #列出kernel的版本資訊 sysctl.=#使調校引數臨時生效 sysctl -W.= #使調校引數永久生效
修改/etc/sysctl.d/99-sysctl.conf 目錄下的99-sysctl.conf檔案
cp /etc/sysctl.d/99-sysctl.conf /etc/sysctl.d/99-sysctl.conf.bak #備份系統預設的核心引數檔案 vim /etc/sysctl.d/99-my.conf #建立新的核心引數檔案 ....= #寫入要調校的引數類和值.=... save #儲存檔案 reboot\ sysctl -p /etc/sysctl.d/99-my.conf #重啟系統或者使用sysctl -p 命令載入新的核心引數配置
(1)調整最大請求的aio數量.
sysctl -a | grep fs.aio #檢視核心預設的最大aio值 sysctl fs.aio-max-nr=2048576 #臨時調整aio最大值
(2)開啟本地ipv4轉發功能.
sysctl net.ipv4.ip_forward = 1
(3)設定程式能被分配到的最大記憶體空間.
sysctl vm.max_map_count = 65530
(4)設定系統中同時執行的最大程式數.
sysctl kernel.threads-max = 16161
在root許可權下,透過sysctl 命令的核心引數調校, 基本上能直接控制linux 的核心所有行為, 滿足實際生產中的絕大多數需求.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2884635/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux系統管理之硬碟管理Linux硬碟
- Linux系統管理之程式管理Linux
- RHEL7網路管理
- linux核心基礎-系統服務管理Linux
- 【zz】論系統整合專案管理之範圍管理專案管理
- 工程管理系統之Spring Cloud+實現工程管理系統原始碼SpringCloud原始碼
- IT專案管理之系統測試專案管理
- 系統管理體系——軟體包管理
- 理解作業系統之儲存管理作業系統
- 作業系統之程式管理:16、管程作業系統
- 後臺管理系統之詳解(一)
- 學生資訊管理系統之深度理解
- 學生資訊管理系統之優化優化
- 系統管理的工具箱之: iftop
- 資訊系統專案管理系列之八:專案成本管理專案管理
- RHEL7服務管理工具systemctl
- java版工程專案管理系統原始碼+系統管理+系統設定+專案管理Java專案管理原始碼
- 能耗管理系統,能源管理系統的意義
- 工程管理系統原始碼-物料管理-工程專案管理系統-建築施工管理軟體原始碼專案管理
- 地府管理系統
- 招聘管理系統
- Gms管理系統
- CMS管理系統
- vps管理系統 批次管理程式
- 資訊系統專案管理系列之五:專案整體管理專案管理
- 資訊系統專案管理系列之六:專案範圍管理專案管理
- 資訊系統專案管理系列之九:專案質量管理專案管理
- 揭祕騰訊程式碼管理核心—工蜂Git系統架構Git架構
- Linux系統管理-工作管理(後臺程式管理)Linux
- Linux系統管理之定時任務Linux
- Linux系統學習之檔案管理Linux
- Linux系統學習之網路管理Linux
- 學生資訊管理系統之SQL連結SQL
- 軟體專案管理之系統思考(轉)專案管理
- Java作業系統課設之模擬程式管理系統Java作業系統
- 資訊系統監理之資訊系統專案管理專案管理
- RHEL7重置root管理員密碼密碼
- java版工程專案管理系統原始碼+系統管理+系統設定+專案管理+合同管理+二次開發Java專案管理原始碼