兰德汉兰达HEL柒系统一管理理之内核管理,工作流程

  (1)使用sysctl 命令;

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

Kdump怎么工作?

在当前系统一发布出崩溃时,新的抓获内核被加载,然后依据已设置的指令去将如今事先产生崩溃的系统的内存保存到几个出奇的公文(vmcore)中。

上面以Fedora贰陆做为测试演示。(Fedora和CentOS体系的系统现已在kenrel中开辟了CONFIG_KEXEC*选项。)

率先须要在系统运维时留下出给第二个基础运营的内部存款和储蓄器。内核参数”crashkernel=160M”会在系统运行时预留出160M内存的长空给捕获内核运维使用。”crashkerel=xM”还扶助任何的参数,详细的能够参见内核参数文书档案
基本参数。

# dmesg | grep -i reserving
[    0.000000] Reserving 160MB of memory at 656MB for crashkernel (System RAM: 2047MB)

系统运营后大家能够从下边包车型客车授命中见到曾经预留出了160M的内部存款和储蓄器从内部存款和储蓄器的65六M处。

设置用户态的包”kexec-tools”,软件包中会提供kdump所需的服务和”kexec”火速内核运营命令,和削减过滤内部存储器的”makedumpfile”命令。

[root@localhost ~]# dnf install -y kexec-tools

陈设,修改kdump相关的计划文件。

[root@localhost ~]# grep -v ^# /etc/kdump.conf 

path /var/crash
core_collector makedumpfile -l --message-level 1 -d 31


[root@localhost ~]# grep -v ^# /etc/sysconfig/kdump
KDUMP_KERNELVER=""

KDUMP_COMMANDLINE=""

KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet"

KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail acpi_no_memhotplug transparent_hugepage=never nokaslr"

KEXEC_ARGS=""

KDUMP_IMG="vmlinuz"

KDUMP_IMG_EXT=""

安插文件/etc/kdump.conf设置了kdump发生时vmcore文件的蕴藏情势,此文件修改后须求重启kdump的劳务。

布置文件/etc/sysconfig/kdump,假诺只是修改了COMMANDLINE相关的参数,则不要求去重新build生成新的initramfs文件。

启动kdump服务:

[root@localhost ~]# systemctl restart kdump
[root@localhost ~]# systemctl status kdump
● kdump.service - Crash recovery kernel arming
   Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2017-07-15 10:46:22 UTC; 36s ago
  Process: 2172 ExecStop=/usr/bin/kdumpctl stop (code=exited, status=0/SUCCESS)
  Process: 2180 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS)
 Main PID: 2180 (code=exited, status=0/SUCCESS)

Jul 15 10:46:21 localhost dracut[4264]: -rw-r--r--   1 root     root          127 Mar 28 02:15 usr/share/zoneinfo/Etc/UTC
Jul 15 10:46:21 localhost dracut[4264]: drwxr-xr-x   3 root     root            0 Jun 22 13:38 var
Jul 15 10:46:21 localhost dracut[4264]: lrwxrwxrwx   1 root     root           11 Jun 22 13:38 var/lock -> ../run/lock
Jul 15 10:46:21 localhost dracut[4264]: lrwxrwxrwx   1 root     root            6 Jun 22 13:38 var/run -> ../run
Jul 15 10:46:21 localhost dracut[4264]: drwxr-xr-x   2 root     root            0 Jun 22 13:38 var/tmp
Jul 15 10:46:21 localhost dracut[4264]: ========================================================================
Jul 15 10:46:21 localhost dracut[4264]: *** Creating initramfs image file '/boot/initramfs-4.11.9-300.fc26.x86_64kdump.img' done ***
Jul 15 10:46:22 localhost kdumpctl[2180]: kexec: loaded kdump kernel
Jul 15 10:46:22 localhost kdumpctl[2180]: Starting kdump: [OK]
Jul 15 10:46:22 localhost systemd[1]: Started Crash recovery kernel arming.

持有的劳动都安排完毕,假如那时系统爆发了panic也许其它的有个别导致系统崩溃的气象,那是kdump服务会将及时的内部存款和储蓄器镜像依照用户的布置保存起来。二个大致的章程是因而命令来触发:

[root@localhost ~]# echo c > /proc/sysrq-trigger

[some console log]
... ...
         Starting Kdump Vmcore Save Service...
kdump: dump target is /dev/vda1
kdump: saving to /sysroot//var/crash/127.0.0.1-2017-07-16-04:21:36/
[    2.718001] EXT4-fs (vda1): re-mounted. Opts: data=ordered
kdump: saving vmcore-dmesg.txt
kdump: saving vmcore-dmesg.txt complete
kdump: saving vmcore
Copying data                       : [100.0 %] -
kdump: saving vmcore complete
... ...
[/some console log]

当系统重启后就能在内定的目录下见到变化的vmcore文件。能够参考布局文件”/etc/kdump.conf”里的”path”字段。

[root@localhost ~]# ls -lt /var/crash/*/
total 33492
-rw-------. 1 root root 34253115 Jul 16 04:21 vmcore
-rw-r--r--. 1 root root    40360 Jul 16 04:21 vmcore-dmesg.txt

转储文件被保存后能够用”crash”那一个软件包来分析那一个”vmcore”文件。

起先波及了Kexec内核部分提供了一部分体系调用,”kexec_load()” 和
“kexec_file_load()”,在那之中1个用来加载捕获内核 – “kexec
-l”,其余3个来提供系统重启 – “kexec -e”。

系统调用”kexec_load()”能够加载一个新的水源并随后能够被”reboot()”调用。它是被如此定义的:

long kexec_load(unsigned long entry, unsigned long nr_segments,
                       struct kexec_segment *segments, unsigned long flags);

里头2个比较根本的是”kexec_segment”结构体:

struct kexec_segment {
    void   *buf;        /* Buffer in user space */
    size_t  bufsz;      /* Buffer length in user space */
    void   *mem;        /* Physical address of kernel */
    size_t  memsz;      /* Physical address length */
};

当reboot()的参数为”LINUX_REBOOT_CMD_KEXEC”并被调用时,则运维新的根本时就调用”kexec_load()”系统调用。此外“CONFIG_KEXEC”必须在编写翻译kernel时被打开。

系统调用”kexec_load_file()”会安装一个参数”kernel”和”initramfs”给”kexec”命令。”kexec”会读取这一个数据来创建对应的数据段。

long kexec_file_load(int kernel_fd, int initrd_fd,
                           unsigned long cmdline_len, const char *cmdline,
                           unsigned long flags);

同样的”CONFIG_KEXEC_FILE”参数也要在根本编写翻译时被打开。

时下的绝大部分发行版都已经开辟了”KEXEC”相关的配备参数。

上述就是三个kdump的大约流程。有关”kdump”能够捕获到的基本崩溃时间能够参照文书档案”/usr/share/doc/kexec-tools/kexec-kdump-howto.txt”。也许请参考我们写的测试用例
kdump-test。

参考资料:
kdump-paper
kdump-introduction
fedora-kexec-tools

一.2 通过命令行配置kdump内部存款和储蓄器体量

  1. Kdump工具

什么是Kexec?

Kexec是一种可以依照已经运转基础的上下文飞快运营新水源的壹种体制,而不通过BIOS。BIOS的启航在壹些特大型机械恐怕有多量外设的机器上时特意耗费时间。那种机制能够节约需求在差异基础之间切换的开发人士的年月。
Kexec在基础空间和用户空间都有相应的零件,内核提供了几个kexec重启效能的系统调用。用户空间的软件包”kexec-tools”使用这几个种类调用,并进行加载和辅导第贰个根本(捕获内核)。
Kexec由两部分构成,一是基本空间的种类调用kexec_load,负责在生产基础(可能叫第1个水源)运营时将捕获内核(也许叫第三个根本)加载到内定的地点。而是用户空间的kexec-tools,它将捕获内核(second
kernel)的地点传递给生产基础(first
kernel),让系统在崩溃的时候能够找到捕获内核(second
kernel)的地点并运营。

能够透过上面发号施令直接CR-VPM包安装.

cp /etc/sysctl.d/99-sysctl.conf
/etc/sysctl.d/99-sysctl.conf.bak    #备份系统暗中同意的基本参数文件
vim /etc/sysctl.d/99-my.conf    #始建新的基石参数文件

什么是Kdump?

Kdump是一个基于kexec的基本崩溃转储机制,当系统崩溃时,kdump使用kexec运行到首个水源。地球热能个水源叫做捕获内核大概又叫“二nd
kernel”,它以很少的内存运维捕获内核,并抓获转储镜像。Kdump的定义是眼前最可信赖的水源转储技术,已被第1的linux厂商使用。(例如Red
Hat体系)

二.3 修改/etc/sysctl.d/9玖-sysctl.conf 目录下的9玖-sysctl.conf文件

  kdump能监督系统基本运营意况,其地点相比较特殊.
kdump的内部存款和储蓄器空间是在系统运行时,由指导程序分配的,相对于系统基本,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

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

而且,Kdump还布署了图形化管理工科具,可以透过上边发号施令安装.

sudo yum -y install crash       #安装crash
sudo debuginfo-install kernel    #设置内核调节和测试模块

一.四 利用crash功能分析内核崩溃

crash组件能够经过奥德赛PM包安装.

  本文默许英特尔或INTEL X八陆_6四架构, LX570HEL柒系列环境. 

sysctl kernel.threads-max = 16161

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

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

crashkernel=auto

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

(四)设定系统中还要运维的最大过程数.

crashkernel=auto

一.壹 内核管理工科具Kdump安装

1.3 Kdump的存储

2.四 sysctl 调校内核参数

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

(3)设定进度能被分配到的最大内部存款和储蓄器空间.

  还足以如此:

  Kdump的办事机制是在根本崩溃时, 通过kexec 工具由BIOS运维2个备用水源,
由备用水源执行1多元职分,保存内存中崩溃内核的景观, 供后续故障分析用。

  (二)假使在装置界面禁止使用了kdump, 而安装达成未来再经过systemctl start
kdump运转kdump, 会报内部存储器不足不可能起动的错误.
kdump的内部存款和储蓄器空间是在基础加载从前由boot分配的, 所以必须修改boot.
最佳使用kdump的图形管理工科具 system-config-kdump 加载kdump的暗中认可配置,
使kdump处于可用状态, 然后重启系统, systemctl status kdump
服务处于激活状态(active).

网赌十大信誉的平台 1

  Kdump是奥德赛HEL柒中自带的基石管理工科具.在QashqaiHEL7.壹事先的本子,kdump作为安装到位之后的可选组件自动安装,从翼虎HEL7.一从头kdump被植入安装界面,作为系统基础工具供安装选用.

sysctl net.ipv4.ip_forward = 1

  当然,crashkernel的值还能通过如下方式落到实处越来越灵敏的配置.

  当然,crashkernel的值还是能通过如下方式落实更加灵敏的配置.

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

(2)开启本地ipv四转载效能.

yum -y install system-config-kdump

yum -y install system-config-kdump

网赌十大信誉的平台 2


<tunable class>.<tunable> = <value>
  #写入要调校的参数类和值
 <tunable class>.<tunable> = <value>

save    #封存文件
reboot\ sysctl -p /etc/sysctl.d/99-my.conf  #重启系统大概利用sysctl
-p 命令载入新的基业参数配置

(3)设定进程能被分配到的最大内部存款和储蓄器空间.

并且,Kdump还布署了图形化管理工科具,能够经过上面发号施令安装.

  需求注意的是

二.2 sysctl命令能够列出、读取、设置基础参数,
还是能够将参数设置为一时或永久.

crash组件能够透过途达PM包安装.

能够经过上边发号施令直接OdysseyPM包安装.

sysctl vm.max_map_count = 65530

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

二.2 sysctl命令能够列出、读取、设置基础参数,
还足以将参数设置为最近或永久.

sysctl -a | grep fs.aio    #查阅内核私下认可的最大aio值
sysctl fs.aio-max-nr=2048576  #一时半刻调整aio最大值

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

本文永久更新链接地址

  Kdump的配置在/etc/kdump.cnf中.
kdump提供多样措施将捕获到基本崩溃数据本地保存或保存到长途主机.

  (二)要是在装置界面禁止使用了kdump, 而安装到位之后再经过systemctl start
kdump运营kdump, 会报内部存款和储蓄器不足不可能运营的错误.
kdump的内部存款和储蓄器空间是在基本加载此前由boot分配的, 所以必须修改boot.
最棒使用kdump的图纸管理工科具 system-config-kdump 加载kdump的默许配置,
使kdump处于可用状态, 然后重启系统, systemctl status kdump
服务处于激活状态(active).

  (一)在福睿斯HEL7从前的版本中,kdump的囤积目录会趁机kdump服务的起步而由系统活动创制.
WranglerHEL七中,尽管更改了kdump的存款和储蓄目录,则必须在开发银行kdump服务从前,手动创设kdump的储存目录,不然kdump服务会运转退步.

  (1)在RubiconHEL7在此之前的本子中,kdump的储存目录会趁机kdump服务的开发银行而由系统活动创立.
福睿斯HEL7中,假使改动了kdump的囤积目录,则必须在开发银行kdump服务在此以前,手动创立kdump的仓库储存目录,否则kdump服务会运行失利.

网赌十大信誉的平台 3

Linux公社的RSS地址:

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

2.三 修改/etc/sysctl.d/99-sysctl.conf 目录下的9九-sysctl.conf文件

sysctl net.ipv4.ip_forward = 1

二 linux内核调校

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

   crashkernel的值能够设置成“auto”,在局地享有较大内部存款和储蓄器的系统中,利于达成Kdump的自动化管理.

  对于PRADOHEL七.四及以往的版本,kdump帮助INTEL IOMMU.
而不扶助CR-VHEL柒.叁及前边的版本.

#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的内部存款和储蓄器空间大小.

1.二 通过命令行配置kdump内部存款和储蓄器体积

(4)设定系统中还要运转的最大进程数.

  Kdump的布置在/etc/kdump.cnf中.
kdump提供多样措施将捕获到基本崩溃数据本地保存或保存到长途主机.

  (二)修改/etc/sysctl.d/ 目录下的内核配置文件;

  瑞鹰HEL七中提供两种基础调校方法:

  利用crash功效组件可以分析linux内核崩溃时的网络、磁盘、CPU、系统基本状态,火速稳定故障点.

1.四 利用crash功能分析内核崩溃

  kdump能监察和控制种类基本运市价况,其身价比较特殊.
kdump的内部存款和储蓄器空间是在系统运维时,由指引程序分配的,相对于系统基本,kdump内存是二个独门的空间.

  Kdump是揽胜HEL七中自带的木本管理工科具.在奥迪Q5HEL柒.1事先的版本,kdump作为安装到位之后的可选组件自动安装,从XC60HEL7.一发端kdump被植入安装界面,作为系统基础工具供安装选择.

2 linux内核调校

crashkernel=512M-2G:64M,2G-:128M    #当系统内设有51贰M-二G之间时,为Kdump保留6肆M的内部存款和储蓄器空间;当系统内部存款和储蓄器大于二G时,为Kdump保留12八M的内部存款和储蓄器空间.

  kdump.conf中还能在 core_collector makedumpfile 选项后增进” -c “,
使kdump文件能够被减弱,以节约存款和储蓄空间.

网赌十大信誉的平台 4

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

  还足以这么:

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

二.壹 kernel的调校途径

(壹)调整最大请求的aio数量.

crashkernel=128M@16M    #为Kdump保留12八M的内部存款和储蓄器空间,内存地址从1陆M(physical
address 0x0一千000)伊始.

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 命令载入新的内核参数配置

能够由此如下命令钦点kdump的内部存储器空间大小.

二.一 kernel的调校途径

(一)调整最大请求的aio数量.

一.壹 内核管理工具Kdump安装

网赌十大信誉的平台 5

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

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

crash基本调试命令:

crash>log    #崩溃时日志记录
crash>bt     #崩溃时的仓库音信
crash>vm     #崩溃时的内部存款和储蓄器状态
crash>ps     #崩溃时的历程景况
crash>files   #崩溃时的开辟的文书
crash>exit   #退出crash

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

sysctl -a        #列出富有可调校的项
sysctl kernel.version    #列出kernel的版本新闻

网赌十大信誉的平台 6

网赌十大信誉的平台,  供给专注的是

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

测试一下:

(贰)开启本地ipv四转载功效.

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

  PAJEROHEL7中提供三种基础调校方法:

  (1)使用sysctl 命令;

测试一下:

crashkernel=128M    #为kdump保留12八M的内部存款和储蓄器空间.

   crashkernel的值能够设置成“auto”,在局地颇具较大内部存款和储蓄器的系统中,利于达成Kdump的自动化管理.

  本文暗中同意速龙或INTEL X八陆_64架构, 翼虎HEL柒类别环境.

  1. Kdump工具

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

  Kdump的劳作体制是在基本崩溃时, 通过kexec 工具由BIOS运行2个备用水源,
由备用水源执行1多重义务,保存内部存款和储蓄器中崩溃内核的情景, 供后续故障分析用.

core_collector makedumpfile -c

sysctl kernel.threads-max = 16161

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

  

  利用crash效用组件可以分析linux内核崩溃时的互连网、磁盘、CPU、系统基本状态,快速稳定故障点.

  在root权限下,通过sysctl 命令的基本参数调校, 基本上能一向控制linux
的基础全部行为, 满意实际生产中的绝超越四陆%须求.

crash基本调节和测试命令:

二.4 sysctl 调校内核参数

  kdump.conf中还足以在 core_collector makedumpfile 选项后增加” -c “,
使kdump文件能够被压缩,以节约存款和储蓄空间.

sysctl vm.max_map_count = 65530

  对于福特ExplorerHEL七.肆及之后的版本,kdump扶助INTEL IOMMU.
而不支持牧马人HEL七.三及后面包车型地铁版本.

在root权限下,通过sysctl 命令的内核参数调校, 基本上能直接控制linux
的根本全体行为举止, 满足实际生产中的绝大部分要求.

网赌十大信誉的平台 7

1.3 Kdump的存储

相关文章

Post Author: admin

发表评论

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