Linux系统的优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统的优化相关的知识,希望对你有一定的参考价值。
1:关闭SElinux及iptables(在工作场景中,如果有外部ip一般要打开iptables,高并发高流量的一般无法开启)
[[email protected] ~]$ grep SELINUX=disabled /etc/sysconfig/selinux
SELINUX=disabled
2:不使用root远程登录系统,而用普通用户登录系统通过sudo授权管理
- https://www.linuxidc.com/Linux/2017-01/139361.htm
3:不用默认的ssh连接端口,禁止root用户远程连接,更改ssh内网监听ip
- https://blog.csdn.net/mrqiang9001/article/details/78308830
- 企业环境中建议平滑重启,防止正在连接的用户断开影响用户体验。
4:定时更新服务器时间,使其与互联网时间同步
- https://www.linuxidc.com/Linux/2017-08/146188.htm
5:配置yum更新源,从国内更新源下载安装软件包
6:修改文件描述符的数量,进程及文件打开都会消耗文件描述符数量
- https://www.cnblogs.com/pangguoping/p/5791432.html
7:定时处理邮件临时目录的垃圾文件,房子磁盘的inodes数量被小文件打满
- ls -i命令列出整个目录文件,即文件名和inode号码
- https://blog.csdn.net/fdipzone/article/details/41558685
8:精简并保留有必要的开机自启服务(crond,sshd,network,sysstat,rsyslog)
- https://blog.csdn.net/jack_nichao/article/details/54093394
- https://www.cnblogs.com/fatt/p/4790561.html
9:linux内核参数优化
- https://www.jianshu.com/p/3096a8e6a36f
net.ipv4.tcp_fin_timeout = 2 #保持在FIN-WAIT-2状态的时间,使系统可以处理更多的连接。此参数值为整数,单位为秒。
net.ipv4.tcp_tw_reuse = 1 #开启重用,允许将TIME_WAIT socket用于新的TCP连接。默认为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME_WAIT socket的快速回收。默认值为0,表示关闭。
net.ipv4.tcp_syncookies = 1 #开启SYN cookie,出现SYN等待队列溢出时启用cookie处理,防范少量的SYN×××。默认为0,表示关闭。
net.ipv4.tcp_keepalive_time = 600 #keepalived启用时TCP发送keepalived消息的拼度。默认位2小时。
net.ipv4.tcp_keepalive_probes = 5 #TCP发送keepalive探测以确定该连接已经断开的次数。根据情形也可以适当地缩短此值。
net.ipv4.tcp_keepalive_intvl = 15 #探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值。
net.ipv4.ip_local_port_range = 1024 65000 #指定外部连接的端口范围。默认值为32768 61000。
net.ipv4.tcp_max_syn_backlog = 262144 #表示SYN队列的长度,预设为1024,这里设置队列长度为262 144,以容纳更多的等待连接。
net.ipv4.tcp_max_tw_buckets =5000 #系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。
net.ipv4.tcp_syn_retries = 1 #表示在内核放弃建立连接之前发送SYN包的数量。
net.ipv4.tcp_synack_retries = 1 #设置内核放弃连接之前发送SYN+ACK包的数量。
net.core.somaxconn = 16384 #定义了系统中每一个端口最大的监听队列的长度, 对于一个经常处理新连接的高负载 web服务环境来说,默认值为128,偏小。
net.core.netdev_max_backlog = 16384 #表示当在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数量。
net.ipv4.tcp_max_orphans = 16384 #表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并输出警告信息。这个限制仅仅是为了防止简单的DoS×××。此值不能太小。
10:锁定关键系统文件(chattr)
- http://man.linuxde.net/chattr
11:清空内核版本信息
[[email protected] ~]$ cat /etc/issue
[[email protected] ~]$ cat /etc/issue.net
12:清除虚拟账号
- https://blog.csdn.net/codetz/article/details/52273803
13:为grub引导菜单加密
- https://blog.csdn.net/ccc82284/article/details/54312494
以上是关于Linux系统的优化的主要内容,如果未能解决你的问题,请参考以下文章
优化 C# 代码片段、ObservableCollection 和 AddRange
使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化
LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段