centos 内核参数?centos7有必要升级内核吗
大家好,关于centos 内核参数很多朋友都还不太明白,今天小编就来为大家分享关于centos7有必要升级内核吗的知识,希望对各位有所帮助!
centos如何进入单用户模式
掌握单用户模式:三种方法让你轻松修复 CentOS/RHEL 7/8系统
在面临系统问题时,单用户模式或维护模式是个强大工具,超级用户可以在此环境中进行修复和管理。当常规多用户模式无法解决问题时,它便能派上用场,例如遇到无法登录、文件系统损坏或网络接口不工作的情况。
启动方式一:rd.break参数引导至单用户模式
首先,我们通过内核参数rd.break来启动。重启系统,进入GRUB2引导界面,选择你想启动的内核,然后按下e键进行编辑。对于RHEL/CentOS 7,查找"linux16",在末尾添加"rd.break",按Ctrl+x或F10启动。在RHEL/CentOS 8,寻找"linux"并进行同样操作。这将使根文件系统以只读模式挂载,然后通过mount-o remount,rw/sysroot切换至读写模式并执行chroot/sysroot以进入单用户环境。修复问题后,创建/.autorelabel文件并重启系统。
方式二:内核命令替换引导至单用户模式
第二种方法是替换内核启动参数。在GRUB2界面,将"rhgb quiet"替换为"init=/bin/bash"或"init=/bin/sh",然后启动。默认会以只读模式挂载,用mount-o remount,rw/切换,执行任务后执行touch/.autorelabel,最后重启系统。
方式三:rw参数启动单用户模式
第三种途径是通过修改内核参数中的"ro"为"rw init=/sysroot/bin/sh"。在引导菜单中,选择目标内核,编辑参数,替换后按Enter启动。接下来,用chroot/sysroot进入单用户环境,处理问题后,创建/.autorelabel文件并重启。
以上三种方法适用于 CentOS/RHEL 7/8系统,旨在帮助用户在遇到特定问题时以单用户模式进行操作。无论你是忘记密码、检查文件系统一致性,还是解决挂载点问题,这些技巧都将大大提高你的系统维护效率。
linux内核优化参数
作为高性能WEB服务器,只调整Nginx本身的参数是不行的,因为Nginx服务依赖于高性能的操作系统。
以下为常见的几个Linux内核参数优化方法。
net.ipv4.tcp_max_tw_buckets
对于tcp连接,服务端和客户端通信完后状态变为timewait,假如某台服务器非常忙,连接数特别多的话,那么这个timewait数量就会越来越大。
毕竟它也是会占用一定的资源,所以应该有一个最大值,当超过这个值,系统就会删除最早的连接,这样始终保持在一个数量级。
这个数值就是由net.ipv4.tcp_max_tw_buckets这个参数来决定的。
CentOS7系统,你可以使用sysctl-a|grep tw_buckets来查看它的值,默认为32768,
你可以适当把它调低,比如调整到8000,毕竟这个状态的连接太多也是会消耗资源的。
但你不要把它调到几十、几百这样,因为这种状态的tcp连接也是有用的,
如果同样的客户端再次和服务端通信,就不用再次建立新的连接了,用这个旧的通道,省时省力。
net.ipv4.tcp_tw_recycle= 1
该参数的作用是快速回收timewait状态的连接。上面虽然提到系统会自动删除掉timewait状态的连接,但如果把这样的连接重新利用起来岂不是更好。
所以该参数设置为1就可以让timewait状态的连接快速回收,它需要和下面的参数配合一起使用。
net.ipv4.tcp_tw_reuse= 1
该参数设置为1,将timewait状态的连接重新用于新的TCP连接,要结合上面的参数一起使用。
net.ipv4.tcp_syncookies= 1
tcp三次握手中,客户端向服务端发起syn请求,服务端收到后,也会向客户端发起syn请求同时连带ack确认,
假如客户端发送请求后直接断开和服务端的连接,不接收服务端发起的这个请求,服务端会重试多次,
这个重试的过程会持续一段时间(通常高于30s),当这种状态的连接数量非常大时,服务器会消耗很大的资源,从而造成瘫痪,
正常的连接进不来,这种恶意的半连接行为其实叫做syn flood攻击。
设置为1,是开启SYN Cookies,开启后可以避免发生上述的syn flood攻击。
开启该参数后,服务端接收客户端的ack后,再向客户端发送ack+syn之前会要求client在短时间内回应一个序号,
如果客户端不能提供序号或者提供的序号不对则认为该客户端不合法,于是不会发ack+syn给客户端,更涉及不到重试。
net.ipv4.tcp_max_syn_backlog
该参数定义系统能接受的最大半连接状态的tcp连接数。客户端向服务端发送了syn包,服务端收到后,会记录一下,
该参数决定最多能记录几个这样的连接。在CentOS7,默认是256,当有syn flood攻击时,这个数值太小则很容易导致服务器瘫痪,
实际上此时服务器并没有消耗太多资源(cpu、内存等),所以可以适当调大它,比如调整到30000。
net.ipv4.tcp_syn_retries
该参数适用于客户端,它定义发起syn的最大重试次数,默认为6,建议改为2。
net.ipv4.tcp_synack_retries
该参数适用于服务端,它定义发起syn+ack的最大重试次数,默认为5,建议改为2,可以适当预防syn flood攻击。
net.ipv4.ip_local_port_range
该参数定义端口范围,系统默认保留端口为1024及以下,以上部分为自定义端口。这个参数适用于客户端,
当客户端和服务端建立连接时,比如说访问服务端的80端口,客户端随机开启了一个端口和服务端发起连接,
这个参数定义随机端口的范围。默认为32768 61000,建议调整为1025 61000。
net.ipv4.tcp_fin_timeout
tcp连接的状态中,客户端上有一个是FIN-WAIT-2状态,它是状态变迁为timewait前一个状态。
该参数定义不属于任何进程的该连接状态的超时时间,默认值为60,建议调整为6。
net.ipv4.tcp_keepalive_time
tcp连接状态里,有一个是established状态,只有在这个状态下,客户端和服务端才能通信。正常情况下,当通信完毕,
客户端或服务端会告诉对方要关闭连接,此时状态就会变为timewait,如果客户端没有告诉服务端,
并且服务端也没有告诉客户端关闭的话(例如,客户端那边断网了),此时需要该参数来判定。
比如客户端已经断网了,但服务端上本次连接的状态依然是established,服务端为了确认客户端是否断网,
就需要每隔一段时间去发一个探测包去确认一下看看对方是否在线。这个时间就由该参数决定。它的默认值为7200秒,建议设置为30秒。
net.ipv4.tcp_keepalive_intvl
该参数和上面的参数是一起的,服务端在规定时间内发起了探测,查看客户端是否在线,如果客户端并没有确认,
此时服务端还不能认定为对方不在线,而是要尝试多次。该参数定义重新发送探测的时间,即第一次发现对方有问题后,过多久再次发起探测。
默认值为75秒,可以改为3秒。
net.ipv4.tcp_keepalive_probes
第10和第11个参数规定了何时发起探测和探测失败后再过多久再发起探测,但并没有定义一共探测几次才算结束。
该参数定义发起探测的包的数量。默认为9,建议设置2。
设置和范例
在Linux下调整内核参数,可以直接编辑配置文件/etc/sysctl.conf,然后执行sysctl-p命令生效
如何在 CentOS / RHEL 中启用/禁用 CPU(限制 CPU 数量)
|在具有多处理器的系统上禁用/启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?在 CentOS/RHEL中有三种方法可以限制 CPU的数量。|
在具有多处理器的系统上禁用/启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?
在 CentOS/RHEL中有三种方法可以限制 CPU的数量:
使用 maxcpus参数(RHEL/CentOS 6)
使用 nr_cpus参数(RHEL/CentOS 6,7)
在线禁用 CPU(RHEL/CentOS 6,7)
1.使用maxcpus参数
此方法适用于 RHEL/CentOS 6系统。如果在 RHEL/CentOS 7系统中使用它可能会失败。尽管在较新版本的 RHEL 7系统中,此错误已得到修复。
您可以在/boot/grub/grub.conf中添加内核参数maxcpus=N或在引导时添加到内核行。例如,要限制服务器仅使用 2个 CPU,你可以使用以下方法:
注意:不能在 Red Hat Enterprise Linux系统上禁用 CPU。
当使用 maxcpus时,它将从所有可用的物理 CPU中获取 CPU。例如,在具有两个双核 CPU的系统上,maxcpus=2将从每个物理 CPU中获取一个 CPU。要了解正在使用的物理 CPU ID,可以使用下面的查询:
使用nr_cpus参数
对于 CentOS/RHEL 6,在/boot/grub/grub.conf或引导时的内核行中添加内核参数nr_cpus=N。例如,下面的条目会将服务器限制为只有 2个 CPU。
对于 CentOS/RHEL 7:
(1)对于 RHEL 7系统,将nr_cpus=N参数添加到“/etc/sysconfig/grub”中的“
GRUB_CMDLINE_LINUX”行,如下所示。
(2)使用grub2-mkconfig命令重新生成/boot/grub2/grub.cfg文件。
(3)验证grub配置文件中nr_cpu参数的入口。
禁用CPU在线
禁用 CPU内核:
(1)在运行时,可以使用以下命令禁用 cpu内核。例如对于 4核系统,我们可以禁用 3个 CPU
如下所示:
(2)要验证您是否禁用了 3个核心并且只启用了 1个核心,请使用以下命令:
重新启用 CPU内核:
(1)可以通过以下命令重新激活 CPU内核:
(2)再次验证/proc/cpuinfo中的 4个启用核心的核心。
如何在 CentOS/ RHEL中启用/禁用 CPU(限制 CPU数量)|《Linux就该这么学》(linuxprobe.com)