首页 > 系统相关 >安装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动解决方法 及 linux内存一直减少-Cached占用很大的解决

安装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动解决方法 及 linux内存一直减少-Cached占用很大的解决

时间:2024-05-29 09:03:14浏览次数:25  
标签:Kernel 释放 grub centos Cached 占用 boot 内存 linux

一、安装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动的解决方法

    装系统总会遇到各种新鲜问题,不过不要紧,只问题才能提升解决问题的能力,今天重新装了个CENTOS6.5的64位版,可能是进行了分区(boot单独挂载到了一个分区),开机时centos报错:Kernel panic - not syncing: Attempted to kill init,截图如下:

linux装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动的解决方法

    网上找了找,也有人遇到了同样的问题并提供了临时地解决办法,即启动后按e键进入grub引导界面如下:在此界面下选中第二个,按e键进入编辑模式(下方红框中列出了可用的快捷键及意义)。

linux装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动的解决方法

    在这行最后面添加一个: enforcing=0,这行我就没截图了,输入后按“enter"确定,然后根据上面的提示按b键继续boot.此时就能进入centos。但这样还是有个问题,就是当你重启后你会发现又会碰到同样的问题,依然要进行一样的修改,那有没有办法让这个enforcing=0永久加上呢。当然是可以的。在成功进入centos之后,我们可以对centos的grub引导菜单进行编辑,

    命令:vi /boot/grub/menu.lst 里面列出的就是上图引导菜单的各项,如下图,这时我们就可以对其进行编辑,加上enforcing=0这项配置,保存再次重启就会自动成功了。

linux装centos开机出现Kernel panic - not syncing: Attempted to kill init无法启动的解决方法

 命令执行过程如下:

[root@localhost ~]# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=f6cf5f2e-c216-4dbf-88dd-ea8169bbc2b1 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet enforcing=0
        initrd /initramfs-2.6.32-431.el6.x86_64.img
[root@localhost ~]# 

二、linux服务器内存一直在减少-Cached占用很大的原因和解决

    最近在进行项目压测,并发压力8000,在测试的过程中发现内存一直在减少,开始也没觉得是大问题,但是压力测试进行几天之后,再看内存,15G内存的服务器只剩下100来M了。但此时服务器并没有崩溃,统计来看内存减少至约160M时会自动释放一些,但不会释放很多(基本不超过180)。见下图:

linux服务器内存一直在减少-Cached占用很大的原因和解决

    可见linux服务器会自动释放内存,保障系统运行,但只会释放够用的内存,而不会去释放更多的内存,现在的问题有1.是什么东西占了这么多内存?查看进程根本没有几个进程占用多少内存。2.linux内存释放时也不释放这些内存是为什么?3.为什么减至160M后才开始释放?

    使用命令:cat /proc/meminfo 查看内存占用情况时发现内存占用很大时,是Cached值非常大,基本快接近总内存值15G了。

linux服务器内存一直在减少-Cached占用很大的原因和解决

(上图是问题解决后的图,此时Cached已经释放)

    cached是什么?cached是作为page cache的内存, 文件系统的cache。主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完,如果 cache 的值很大,说明cache住的文件占用很大。可我服务器上的程序里基本没有对磁盘进行读写操作,为什么会这么大呢?这时才突然想起来nginx的访问日志,因为是写到一个access.log里,这个文件一直在增加,且nginx每次请求都会写入,是极有可能是这个问题。于是我对nginx日志的文件进行清空:echo > access.log。在执行此操作前后对比发现内存被释放了,基本Cached完全释放出来(最终我通过将nginx日志分时处理解决了这个内存问题)。

    在前面一篇文章里:http://47.93.183.36/article/141.html 我通过手动释放,将内存释放出来了,实际也是释放的Cached,这是Linux内核的策略:最大程度的利用内存cache 文件系统的数据,以提高IO速度。所以可以是因为nginx一直要写这个access.log.而这个文件可能在压测几天后慢慢地超过了内存的大小,使得它快占用完整个内存。而在linux服务器自动释放内存时又会尽量不释放Cached这块内存,使得内存越来越小。所以内存一直在减少-Cached占用很大时可以排查一下有没有很大很多的文件在读写,
   可以配置系统 开始回收内存的阀值:/proc/sys/vm/min_free_kbytes。通过查看我服务器配置的是:67584 。约66M,但不知为何通过测试发现我这里是到160M左右就开始释放的。先放着也许哪天就顺手解决了。

标签:Kernel,释放,grub,centos,Cached,占用,boot,内存,linux
From: https://blog.csdn.net/weixin_47792780/article/details/139156441

相关文章

  • bet8链接:浅谈LKL对Linux和新的成果
    由bet8链接 вт989点сс编译,LinuxKernelLibrary(LKL)设计为Linux核心的移植版本,在目录arch/lkl中,约有3500行的程式码。LKL与应用程式连结,以运作于使用者空间,依赖由主机作业系统提供的一组主机端的功能,例如semaphore,POSIXThreads,malloc、计时器(timer)......
  • [IMX6ULL驱动开发]-Linux对中断的处理(二)
    上一篇文章中,引入了Linux对于中断的一些简略流程以及中断抽象为具体实际形象。此文章主要是继续加深对Linux对中断的处理流程以及一些相应的数据结构。目录Linux对中断的扩展:硬件中断、软件中断多中断处理中断上下部处理流程发生中断A,并被中断A打断发生中断A,并被中断B打......
  • openssh9.7p1(OpenSSL 1.1.1w)适用于各Linux系统的rpm包
    本人近几日编译的openssh9.7p1包,用于解决漏洞扫描器提示openssh相关漏洞的问题处理。包含多个Linux发行版本(包含el6\el7\el8\openeuler2110\openeuler2203\BCLinux\eulerOS2.10对应版本等)。一、适用openeuler2203和openeuler2203sp*系列(含BClinux对应系列):openssh9.7P1forop......
  • 0Linux GDB学习笔记
    LinuxGDB使用目录文章目录LinuxGDB使用先编译文件1.检查安装1.1安装GDB2.启动GDB3.退出GDB4.设置断点4.1在指定行号处设置断点4.2在指定函数名处设置断点4.3在指定源文件和行号处设置断点4.4查看断点信息4.5删除断点5.运行5.1<fontcolor=#ff0000>逐过程:遇到......
  • 在 windows 通过 vscode 查看 linux 上的代码
    原理使用vscode的 Remote-SSH插件,通过SSH连接linux,直接查看linux上的代码,免手动同步vscodessh配置文件Config 私钥IdentityFile默认是~/.ssh/id_rsa,所以可省略登录界面打开linux文件夹 ......
  • linux恢复数据
    linux恢复数据在Linux系统中恢复数据,可以采取多种方法,具体取决于数据丢失的原因和文件系统的类型。以下是一些常见的数据恢复方法:使用Undelete工具:首先,你需要使用如yum或apt-get等命令安装Undelete工具。查找被删除的文件。例如,在CentOS系统中,你可以使用sudoundelete/......
  • 在Linux中,如何进行用户行为监控?
    在Linux中,进行用户行为监控可以通过多种工具和命令来实现。以下是详细的方法,结合了参考文章中的信息:1.使用命令行工具a.w命令功能:显示当前登录的所有用户的列表,以及他们的登录时间、当前进程和系统负载。示例:在终端中输入w命令,将显示当前登录到系统的用户列表、登录时间......
  • 在Linux中,如何进行系统安全加固?
    在Linux系统中,进行系统安全加固是一个多层面、多策略的过程,涉及到从物理环境到应用层的多个方面。以下将详细阐述在Linux系统中进行系统安全加固的几个主要方面及具体操作步骤:一、系统防火墙的配置使用iptables(CentOS6):iptables是Linux系统中的一个灵活的工具,可以用来管理IP信......
  • 在Linux中,如何进行数据恢复?
    在Linux中进行数据恢复是一个相对复杂的过程,它涉及到多个方面和不同的恢复方法。以下是详细的数据恢复步骤和注意事项:1.评估数据丢失情况确定数据丢失原因:硬件故障、软件问题、误删除等。检查文件系统状态:使用如fsck命令检查文件系统的完整性。确定要恢复的数据:明确需要恢复......
  • 在Linux中,如何进行网络资源的优化?
    在Linux中进行网络资源优化,主要目标是提高网络吞吐量、降低延迟、确保稳定性和安全性。以下是一些常见的优化措施:1.调整网络参数修改TCP缓冲区大小:通过调整/proc/sys/net/core/wmem_max和rmem_max来增大发送和接收缓冲区的大小,可以提高大文件传输或高带宽链接的性能。使用sys......