Ubuntu系统初始化后配置清单ToDoList

ToDoList清单

配置时区 sudo timedatectl set-timezone Asia/Shanghai && sudo cat /etc/timezone

配置时区

1
2
sudo timedatectl set-timezone Asia/Shanghai
sudo cat /etc/timezone

配置Limit

编辑/etc/security/limits.conf文件,添加或修改相应的行来增加限制。例如:

1
2
3
4
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

确保 IP 转发已启用

确保内核启用了 IP 转发功能。可以通过以下命令启用:

1
sudo sysctl -w net.ipv4.ip_forward=1

为了使设置永久生效,可以编辑 /etc/sysctl.conf 文件,添加以下内容:

1
net.ipv4.ip_forward = 1

然后运行以下命令应用配置:

1
sudo sysctl -p

增加sudo权限

sudo vim /etc/sudoers

1
user ALL=(ALL:ALL) NOPASSWD: ALL

配置高并发服务器调小TCP协议的time_wait时间

查看网络节点的tcp连接状态,如果发现系统存在大量的TIME_WAIT状态的连接,通过调整内核参数解决:
然后执行以下命令让参数生效: sudo /sbin/sysctl -p

limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置

linux下ulimit参数调整

sudo vim /etc/security/limits.conf

1
2
3
4
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

临时配置

1
2
ulimit -SHn 65536
ulimit -n

limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置

改变系统最大打开文件数,需要修改 /etc/sysctl.conf 文件

sudo vim /etc/sysctl.conf

1
fs.file-max = 1048576

设置服务最大文件句柄数:

sudo vim /etc/systemd/system.conf

1
DefaultLimitNOFILE=1048576

配置网络参数修改

sudo vim /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service

1
2
[Service]
TimeoutStartSec=5sec

Linux 操作系统参数

系统全局允许分配的最大文件句柄数:
2 millions system-wide

1
2
3
sudo sysctl -w fs.file-max=2097152
sudo sysctl -w fs.nr_open=2097152
sudo echo 2097152 > /proc/sys/fs/nr_open

TCP 协议栈网络参数

1
2
3
sudo sysctl -w net.core.somaxconn=32768
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sudo sysctl -w net.core.netdev_max_backlog=16384

可用知名端口范围:

1
sudo sysctl -w net.ipv4.ip_local_port_range='1000 65535'

TCP Socket 读写 Buffer 设置:

1
2
3
4
5
6
7
8
9
sudo sysctl -w net.core.rmem_default=262144
sudo sysctl -w net.core.wmem_default=262144
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.core.optmem_max=16777216

#sysctl -w net.ipv4.tcp_mem='16777216 16777216 16777216'
sudo sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216'
sudo sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'

TCP 连接追踪设置

1
2
3
sudo sysctl -w net.nf_conntrack_max=1000000
sudo sysctl -w net.netfilter.nf_conntrack_max=1000000
sudo sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30

Failed to allocate directory watch: Too many open files

解决办法:
vim /etc/sysctl.conf
sudo vim /etc/sysctl.conf


1
2
3
fs.file-max = 1048576
fs.inotify.max_user_instances=25120
fs.inotify.max_user_watches=262144

生效

sudo sysctl -p