Centos7.5调试/etc/sysctl.conf文件导致宕机

本文记录了一次在安装greenplus数据库过程中,因误修改/etc/sysctl.conf文件中/proc/sys/vm/overcommit_memory参数值为2,导致系统异常宕机的问题。文章详细介绍了如何通过调整该参数回默认值0,解决了系统命令无法正常输出及潜在的内存分配问题。

今天安装greenplus数据库,需要调试一个核心文件/etc/sysctl.conf文件,结果导致系统异常宕机,出现的问题就是使用任何命令都不能输出正确的结果,只有这个显示:

不知道是什么原因,ls命令都不能使用。后来就去网上找一些答案:

而messages日志中,也没有OOM相关的记录。最后确认原因为:/proc/sys/vm/overcommit_memory参数导致。
该环境中该参数设置为2,表示“No overcommit”,即系统中所有进程占用的虚拟内存空间不能超过上限:
cat /proc/meminfo
CommitLimit:    12061860 kB  //虚拟地址空间的上限
Committed_AS:    8625360 kB  //当前的使用量

而该参数应该默认是0,这种情况下,只有还有空闲的物理内存,就可以继续分配,不受虚拟地址空间的限制。
echo 0 > /proc/sys/vm/overcommit_memory
如此修正后解决。
2、关于overcommit_memory说明:
 取值为0,系统在为应用进程分配虚拟地址空间时,会判断当前申请的虚拟地址空间大小是否超过剩余内存大小,如果超过,则虚拟地址空间分配失败。因此,也就是如果进程本身占用的虚拟地址空间比较大或者剩余内存比较小时,fork、malloc等调用可能会失败。

 取值为1,系统在为应用进程分配虚拟地址空间时,完全不进行限制,这种情况下,避免了fork可能产生的失败,但由于malloc是先分配虚拟地址空间,而后通过异常陷入内核分配真正的物理内存,在内存不足的情况下,这相当于完全屏蔽了应用进程对系统内存状态的感知,即malloc总是能成功,一旦内存不足,会引起系统OOM杀进程,应用程序对于这种后果是无法预测的

 取值为2,则是根据系统内存状态确定了虚拟地址空间的上限,由于很多情况下,进程的虚拟地址空间占用远大小其实际占用的物理内存,这样一旦内存使用量上去以后,对于一些动态产生的进程(需要复制父进程地址空间)则很容易创建失败,如果业务过程没有过多的这种动态申请内存或者创建子进程,则影响不大,否则会产生比较大的影响

最后终于解决了

转载于:https://www.cnblogs.com/FengGeBlog/p/10299789.html

ISPSRV (UOS) mount /dev/sr0 /mnt vim /etc/apt/sources.list [trusted=yes] file:///mnt fou main apt update nmtui hostname -f vim /etc/hosts apt install -y isc-dhcp-server bind9 vim /etc/default/isc-dhcp-server INERFACEv4="ens33" vim /etc/dhcp/dhcpd.conf subnet 81.6.63.0 netmask 255.255.255.0{ range 81.6.63.110 81.6.63.190; option domain-name-servers 81.6.63.100; option domain -name "chinaskills.cn"; option routers 81.6.63.254; } systemctl restart isc-dhcp-server.service systemctl status isc-dhcp-server.service cd /etc/bind/ ls cp -ap db.local db.root vim named.conf zone"."{ type master; file "/etc/bind/db.root"; }; zone "chinaskills.cn" { type slave; masters { 81.6.63.254; }; file "/etc/bind/db.chinaskills.cn"; }; ls vim named.conf.optins dnssec-validation no; dnssec-enable no; systemctl restart bind9 systemctl status bind9 chmod 777 -R /etc/bind ls vim db.root @ IN MS localhost * IN A 81.6.63.100 systemctl restart bind9 systemctl status bind9 vim /etc/default/isc-dhcp-server AppSrv(Centos) mount /dev/sr0 /mnt rm -rf /etc/yum.repos.d/* cat <<EOF > /etc/yum.repos.d/1.repo [1] name=1 baseurl=file:///mnt enabled=1 gpgcheck=0 EOF systemctl disable firewalld systemctl stop firewalld nmtui yum install -y vim bath-completion yum install -y dhcp bind vim /etc/dhcp/dhcp.conf cp -ap /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf y vim /etc/dhcp/dhcpd.conf v G I # default-lease-time 600; max-lease-time 7200; ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.0{ range 192.168.0.110 192.168.0.190; option domian-name-servers 192.168.100.100; option domain-name "chinaskills.cn"; interface ens33; option routers 192.168.0.254; } host insidecli{ hardware ethernet 00:0c:29:ce:e8:45; fixed-addrewss 192.168.0.190; } ip ad systemctl restart dhcpd nmtui systemctl status dhcpd systemctl restart dhcpd vim /etc/dhcp/dhcp.conf listen-on port 53 { any; }; allow-query { any; }; forward first; forwarders { 81.6.63.100; }; dnssec-enable on; dnssec-validation on; #zone vim /etc/named.rfc1912.zones viem in{ mathch-clients { 192.168.100.0/24;192.168.0.0/24;127.0.0.1/32;}; zone "chinaskills.cn"{ type master; file "in.chinaskills.cn"; }; }; viem out { match-client { any; }; zone "chinaskills.cn"{ type master; file "out.chinaskills.cn"; allow-transfer { 81.6.63.100; }; }; }; cd /var/named/ ll cp -ad named.localhost in.chinaskills.cn vim in.chinaskills.cn A 192.168.100.100 @ IN MAX 10 mail.chinaskills.cn www IN A 192.168.100.100 download IN a 192.168.100.100 mail IN A 192.168.100.100 ispweb IN A 81.6.63.100 cp -ad in.chinaskills.cn out.chinaskills.cn vim out.chinaskills.cn :%s/192.168.100.100/81.6.63.254 systemctl restart named systemctl status named vim /etc/name.rfc1912.zones systemctl restart named systemctl status named nslookup yum install bind-utils y nslookup www.chinaskills.cn download.chinaskillscn ispweb.chinaskills.cn yum install -y nfs-utils mkdir /webdata echo 192.168.100.200:/webdata /webdate nfs defaults 0 0 >> /etc/fstab mount -a ^c ll STORAGERV(Centos) mount /dev/sr0 /mnt rm -rf /etc/yum.repos.d/* cat <<EOF >etc/yum.repos.d/1.repo [1] name=1 baseurl=file:///mnt enabled=1 gpgcheck=0 EOF systemctl disable firewalld systemctl stop firewalld setemforce 0 nmtui yum install -y vim bath-completion lsblk echo "- - -" >> /sys/class/scsi_host/host echo "- - -" >> /sys/class/scsi_host/host0/scan echo "- - -" >> /sys/class/scsi_host/host1/scan echo "- - -" >> /sys/class/scsi_host/host2/scan yum install -y mdadm lvm2 mdadm -C /dev/md0 -1 5 -n 3 -x 1 /dev/sd[b-e] pvcreate /dev/md0 Vgcreate Vg01 /dev/md0 lvcreate -L 5G -n lv01 vg01 mkfs.ext4 -K /dev/vg01/lv01 mkdir /webdate echo /dev/vg01/lv01 /webdate ext4 0 0 >> /etc/fstab mount -a df -Th cd /webdate/ touth disk.txt cd yum install -y nfs-utils vim /etc/exports /webdata 192.168.100.100(rw,sync,no_root_squash,no_subtree_check) exportfs -av systemctl restart nfs-server ll cd yum install -y samba mkdir -p /data/{share,public} chmod o*rw /data/{share1,public} vim /etc/samba/sma.conf map to guest = bad user [share1] path= /data/share1 write list = zsuser valid users =zsuer,lsusr,wuusr [public] path = /date/public writeble = yes public = yes guest ok = yes systemctl restart smb systemctl status smb useradd -m zsuser useradd -m lsusr useradd -m wuusr pdbedit -a zsuser 1234 pdbedit -a lsusr 1234 pdbedit -a wuusr 1234 systemctl restart smb systemctl status smb cd /data/share1/ ll ROUTESRV(Centos) mount /dev/sr0 /mnt rm -rf /etc/yum.repos.d/* cat <<EOF > /etc/yum.repos.d/1.repo [1] name=1 baseurl=file:///mnt enabled=1 gpgcheck=0 EOF systemctl disable firewalld systemctl stop firewalld setenforce 0 nmtui yum install -y dhcp dhcrelay 192.168.100.100 echo net.ipv4.ip_forward=1 >> /etc/systcl.conf sysctl -p chcrelay 192.168.100.100 dhclient -r dhclient -v INSIDECLI(Centos) mount /dev/sr0 /mnt rm -rf /etc/yum.repos.d/* cat <<EOF > /etc/yum.repos.d/1.repo [1] name=1 baseurl=file:///mnt enabled=1 gpgcheck=0 EOF systemctl disable firewalld ststemctl stop firewalld setenforce 0 nmtui ip ad dhclient -r dhclient -v yum install -y sambd-client sabclient //192.168.100.200/share1 -U zsuser 1234 ls ^c touch 1 touch 2 ls ^c touch 1 touch 2 ls put 1 e^c sabclient //192.168.100.200/share1 -U zsuser 1234 ls put 2 ls q sabclient //192.168.100.200/public 1234 ls put 2 exit OUTSIDE(UOS) mount /dev/sr0 /mnt vim /etc/apt/sources.list [trusted=yes] file:///mnt fou main apt update nmtui dhclient -r dhclient -v ip ad ip route cat /etc/resolv.conf nslookup 将以上linux代码分析并讲述操作思路
06-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值