更改yum源和epel源到阿里云
# 备份原来的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 设置yum源为阿里云
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 添加epel源
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
# 清理缓存并生成新的缓存
yum clean all
yum makecache
端口
查看端口占用
netstat -ntlp
根据pid获取进程详细
ps <PID>
查找指定端口
lsof -i tcp:80
服务器信息
网络信息
ifconfig
#或使用
ip addr
如果提示命令不存在
yum install net-tools
cpu相关
top -c
内存
free -m
硬盘
df -h
防火墙
执行防火墙操作后,必须要调用以下命令重新加载
sudo firewall-cmd --reload
查看防火墙服务状态
systemctl status firewalld
查看防火墙状态
firewall-cmd --state
开启防火墙
systemctl start firewalld
添加端口
sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent
#如果是端口区间
sudo firewall-cmd --zone=public --add-port=80-90/tcp --permanent
移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看开放的端口
firewall-cmd --list-ports
查看所有信息
firewall-cmd --list-all
特定IP访问特定端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="5432" accept"
192.168.142.166 改为 192.168.142.0/24 表示该IP段内的所有IP都可以访问
删除特定IP访问特定端口
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="11300" accept"
磁盘
磁盘占用概况
cd / && df -h
当前目录的占用情况
du -h -x --max-depth=1
文件解压/打包
解压
tar -xzvf *.tar.gz
打包
tar -czf small.tar.gz 文件名或者目录名
服务器优化
修改
/etc/sysctl.conf
在底部添加
#对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃,不应该大于255,默认值是5,对应于180秒左右时间
net.ipv4.tcp_syn_retries=2
#net.ipv4.tcp_synack_retries=2
#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为300秒
net.ipv4.tcp_keepalive_time=1200
net.ipv4.tcp_orphan_retries=3
#表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 4096
#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。默认为0,表示关闭
net.ipv4.tcp_syncookies = 1
#表示开启重用tcp连接。允许将TIME-WAIT sockets重新用于新的TCP连接。默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
#表示开启TCP连接中TIME-WAIT sockets的快速回收。默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1
#表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间
net.ipv4.tcp_fin_timeout = 30
##减少超时前的探测次数
net.ipv4.tcp_keepalive_probes=5
##优化网络设备接收队列
net.core.netdev_max_backlog=3000
kernel.pid_max=64000
fs.file-max = 640000
修改
/etc/security/limits.conf
在底部增加
* soft nofile 640000
* hard nofile 640000
root soft nofile 640000
root hard nofile 640000
如果有用到supervisord,修改
/etc/supervisord.conf
找到并修改
minfds=640000
如果有用到nginx,修改
/etc/nginx/nginx.conf
user nginx;
worker_processes 1;
# 增加worker_rlimit_nofile
worker_rlimit_nofile 640000;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
# 修改worker_connections
worker_connections 640000;
}
验证nginx的 max open files 是否生效
grep 'open files' /proc/$(cat /var/run/nginx.pid)/limits
修改文件
/lib/systemd/system/nginx.service
在 [Service] 节点内添加
LimitNOFILE=700000
重启服务:
sudo systemctl daemon-reload
按需重启服务器,使修改全部生效
reboot
查看连接的汇总信息
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'