菜单

RHEL7系统管理之内核管理

2018年11月16日 - LINUX
  1. Kdump工具
  1. Kdump工具

  Kdump的劳作体制是当本崩溃时, 通过kexec 工具由BIOS启动一个备用水源,
由备用水源执行同一多重任务,保存内存中崩溃内核的状态, 供后续故障分析用.

  Kdump的工作体制是当本崩溃时, 通过kexec 工具由BIOS启动一个备用水源,
由备用水源执行同一系列任务,保存内存中崩溃内核的状态, 供后续故障分析就此。

  本文默认AMD或INTEL X86_64搭, RHEL7系环境. 

  本文默认AMD或INTEL X86_64架, RHEL7网环境.

1.1 内核管理工具Kdump安装

1.1 内核管理工具Kdump安装

  Kdump是RHEL7受由带的木本管理工具.在RHEL7.1之前的本,kdump作为安装好后的可选组件自动装,从RHEL7.1起来kdump被植入安装界面,作为系统基础工具供安装选择.

  Kdump是RHEL7蒙起带的基石管理工具.在RHEL7.1前的本,kdump作为安装好之后的可选组件自动安装,从RHEL7.1初始kdump被植入安装界面,作为系统基础工具供安装选择.

足由此下面发号施令直接RPM包安装.

可以经过下面发号施令直接RPM包安装.

yum -y install kexec-tools
rpm -q kexec-tools

yum -y install kexec-tools
rpm -q kexec-tools

同时,Kdump还配备了图形化管理工具,可以由此下发号施令安装.

又,Kdump还部署了图形化管理工具,可以经过下发号施令安装.

yum -y install system-config-kdump

yum -y install system-config-kdump

  对于RHEL7.4跟后的本子,kdump支持INTEL IOMMU.
而休支持RHEL7.3及前的版本.

  对于RHEL7.4和事后的版本,kdump支持INTEL IOMMU.
而未支持RHEL7.3与前面的版本.

1.2 通过命令行配置kdump内存容量

1.2 通过命令行配置kdump内存容量

  kdump能监督体系基本运行状态,其位比特殊.
kdump的内存空间是在系统启动时,由带程序分配的,相对于系统基本,kdump内存是一个独门的空间.

  kdump能监督网基本运行状态,其身价比较特殊.
kdump的内存空间是在系统启动时,由带程序分配的,相对于系统基本,kdump内存是一个独自的空间.

得经过如下命令指定kdump的内存空间大小.

可透过如下命令指定kdump的内存空间大小.

crashkernel=128M     #为kdump保留128M的内存空间.

crashkernel=128M    #呢kdump保留128M底内存空间.

   crashkernel的价好设置成“auto”,在一部分存有比生内存的网中,利于实现Kdump的自动化管理.

   crashkernel的价值好安装成“auto”,在有具有比较充分内存的系统被,利于实现Kdump的自动化管理.

crashkernel=auto

crashkernel=auto

  当然,crashkernel的值还得经如下形式实现又灵活的配置.

  当然,crashkernel的值还可以通过如下形式落实再次灵活的配置.

  crashkernel=<范围1>:<大小1>, <范围2>:<大小2>

  crashkernel=<范围1>:<大小1>, <范围2>:<大小2>

crashkernel=512M-2G:64M,2G-:128M    #当系统内存在512M-2G之间时,为Kdump保留64M的内存空间;当系统内存大于2G时,为Kdump保留128M的内存空间.

crashkernel=512M-2G:64M,2G-:128M    #当系统外设有512M-2G之间时,为Kdump保留64M的内存空间;当系统内存大于2G常,为Kdump保留128M底内存空间.

  还得这样:

  还好这么:

crashkernel=128M@16M    #为Kdump保留128M的内存空间,内存地址从16M(physical address 0x01000000)开始.

crashkernel=128M@16M    #也Kdump保留128M的内存空间,内存地址从16M(physical
address 0x01000000)开始.

1.3 Kdump的存储

1.3 Kdump的存储

  Kdump的布局在/etc/kdump.cnf中.
kdump提供多方以捕获到基础崩溃数据本地保存还是保存至长途主机.

  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

#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文件能够让抽,以节约存储空间.

  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

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).

  (1)在RHEL7之前的本被,kdump的囤目录会趁着kdump服务的开行而由于系统活动创建.
RHEL7遭,如果改动了kdump的存储目录,则必须于起步kdump服务前,手动创建kdump的储存目录,否则kdump服务会启动失败.

1.4 利用crash功能分析内核崩溃

  (2)如果以装界面禁用了kdump, 而安装完成之后再度经过systemctl start
kdump启动kdump, 会报内存不足无法启动之错误.
kdump的内存空间是当本加载之前由boot分配的, 所以必须修改boot.
最好利用kdump的图形管理工具 system-config-kdump 加载kdump的默认配置,
使kdump处于可用状态, 然后更开系统, systemctl status kdump
服务处于激活状态(active).

  以crash功能组件能够分析linux内核崩溃时之大网、磁盘、CPU、系统基本状态,快速稳定故障点.

1.4 利用crash功能分析内核崩溃

crash组件可以通过RPM包安装.

  用crash功能组件能够分析linux内核崩溃时之网络、磁盘、CPU、系统基本状态,快速稳定故障点.

sudo yum -y install crash       #安装crash
sudo debuginfo-install kernel    #安装内核调试模块

crash组件可以经过RPM包安装.

 sudo crash /usr/lib/debug/lib/modules/<kernel>/vmlinux
/var/crash/<timestamp>/vmcore  #启动crash调试

sudo yum -y install crash       #安装crash
sudo debuginfo-install kernel    #安装内核调试模块

测试一下:

sudo crash /usr/lib/debug/lib/modules/<kernel>/vmlinux
/var/crash/<timestamp>/vmcore  #启动crash调试

图片 1

测试一下:

图片 2

图片 3

crash基本调试命令:

图片 4

crash>log    #崩溃时日志记录
crash>bt     #崩溃时的堆栈信息
crash>vm     #崩溃时的内存状态
crash>ps     #崩溃时的进程状态
crash>files   #崩溃时的打开的文件
crash>exit   #退出crash

crash基本调试命令:

2 linux内核调校

crash>log    #倒时日志记录
crash>bt     #倒时的库房信息
crash>vm     #倒时之内存状态
crash>ps     #倒时之过程状态
crash>files   #倒时的开拓的文本
crash>exit   #退出crash

2.1 kernel的调校途径

2 linux内核调校

  RHEL7负提供三种基础调校方法:

2.1 kernel的调校途径

  (1)使用sysctl 命令;

  RHEL7着提供三种基本调校方法:

  (2)修改/etc/sysctl.d/ 目录下的水源配置文件;

  (1)使用sysctl 命令;

  (3)通过shell 在/proc/sys 目录下挂载虚拟文件系统;

  (2)修改/etc/sysctl.d/ 目录下的基础配置文件;

2.2 sysctl命令可以列出、读取、设置基本参数,
还好将参数设置为临时或永久.

  (3)通过shell 在/proc/sys 目录下挂载虚拟文件系统;

sysctl -a        #列出所有可调校的项
sysctl kernel.version    #列出kernel的版本信息

sysctl <tunable class>.<tunable>=<value>       #使调校参数临时生效
sysctl -W <tunable class>.<tunable>=<value>   #使调校参数永久生效

2.2 sysctl命令可以列出、读取、设置基础参数,
还可以拿参数设置为临时或永久.

2.3 修改/etc/sysctl.d/99-sysctl.conf 目录下的99-sysctl.conf文件

sysctl -a        #列有富有可调校的项
sysctl kernel.version    #排有kernel的版本信息

cp /etc/sysctl.d/99-sysctl.conf /etc/sysctl.d/99-sysctl.conf.bak    #备份系统默认的内核参数文件
vim /etc/sysctl.d/99-my.conf    #创建新的内核参数文件

...
<tunable class>.<tunable> = <value>   #写入要调校的参数类和值
 <tunable class>.<tunable> = <value>
...
save    #保存文件
reboot\ sysctl -p /etc/sysctl.d/99-my.conf  #重启系统或者使用sysctl -p 命令载入新的内核参数配置

sysctl <tunable class>.<tunable>=<value>     
#倘调校参数临时生效
sysctl -W <tunable class>.<tunable>=<value>  
#比方调校参数永久生效

2.4 sysctl 调校内核参数

2.3 修改/etc/sysctl.d/99-sysctl.conf 目录下之99-sysctl.conf文件

(1)调整最特别求的aio数量.

cp /etc/sysctl.d/99-sysctl.conf
/etc/sysctl.d/99-sysctl.conf.bak    #备份系统默认的水源参数文件
vim /etc/sysctl.d/99-my.conf    #创办新的根本参数文件

sysctl -a | grep fs.aio    #查看内核默认的最大aio值
sysctl fs.aio-max-nr=2048576  #临时调整aio最大值


<tunable class>.<tunable> = <value>
  #写副如果调校的参数近似及价值
 <tunable class>.<tunable> = <value>

save    #保留文件
reboot\ sysctl -p /etc/sysctl.d/99-my.conf  #更开系统或用sysctl
-p 命令载入新的基石参数配置

图片 5

2.4 sysctl 调校内核参数

(2)开启本地ipv4变动发功能.

(1)调整最深求的aio数量.

sysctl net.ipv4.ip_forward = 1

sysctl -a | grep fs.aio    #翻开内核默认的极致特别aio值
sysctl fs.aio-max-nr=2048576  #即调整aio最大值

(3)设定进程会让分配到的极可怜内存空间.

图片 6

sysctl vm.max_map_count = 65530

(2)开启本地ipv4改变发功能.

(4)设定系统遭到以运转的极其特别进程数.

sysctl net.ipv4.ip_forward = 1

sysctl kernel.threads-max = 16161

(3)设定进程会让分配到的卓绝可怜外存空间.

  以root权限下,通过sysctl 命令的木本参数调校, 基本上会一直控制linux
的水源所有行为, 满足实际生育遭遇之大部分需求.

sysctl vm.max_map_count = 65530

  

(4)设定系统面临而且运行的顶老进程数.

sysctl kernel.threads-max = 16161

在root权限下,通过sysctl 命令的基石参数调校, 基本上会一直控制linux
的水源所有行为, 满足实际生产面临之大部需求.

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-09/153873.htm

图片 7

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图