更改yum源和epel源到阿里云

  1. # 备份原来的yum源
  2. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  3. # 设置yum源为阿里云
  4. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  5. # 添加epel源
  6. wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
  7. # 清理缓存并生成新的缓存
  8. yum clean all
  9. yum makecache

端口

查看端口占用

  1. netstat -ntlp

根据pid获取进程详细

  1. ps <PID>

查找指定端口

  1. lsof -i tcp:80

服务器信息

网络信息

  1. ifconfig
  2. #或使用
  3. ip addr

如果提示命令不存在

  1. yum install net-tools

cpu相关

  1. top -c

内存

  1. free -m

硬盘

  1. df -h

防火墙

执行防火墙操作后,必须要调用以下命令重新加载

  1. sudo firewall-cmd --reload

查看防火墙服务状态

  1. systemctl status firewalld

查看防火墙状态

  1. firewall-cmd --state

开启防火墙

  1. systemctl start firewalld

添加端口

  1. sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent
  2. #如果是端口区间
  3. sudo firewall-cmd --zone=public --add-port=80-90/tcp --permanent

移除端口

  1. firewall-cmd --zone=public --remove-port=80/tcp --permanent

查看开放的端口

  1. firewall-cmd --list-ports

查看所有信息

  1. firewall-cmd --list-all

特定IP访问特定端口

  1. 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访问特定端口

  1. firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="11300" accept"

磁盘

磁盘占用概况

  1. cd / && df -h

当前目录的占用情况

  1. du -h -x --max-depth=1

cd 到占用最大的目录 然后继续执行 一致排查到最底层为止

文件解压/打包

解压

  1. tar -xzvf *.tar.gz

打包

  1. tar -czf small.tar.gz 文件名或者目录名

服务器优化

修改

/etc/sysctl.conf

在底部添加

  1. #对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃,不应该大于255,默认值是5,对应于180秒左右时间
  2. net.ipv4.tcp_syn_retries=2
  3. #net.ipv4.tcp_synack_retries=2
  4. #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为300秒
  5. net.ipv4.tcp_keepalive_time=1200
  6. net.ipv4.tcp_orphan_retries=3
  7. #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
  8. net.ipv4.tcp_max_syn_backlog = 4096
  9. #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。默认为0,表示关闭
  10. net.ipv4.tcp_syncookies = 1
  11. #表示开启重用tcp连接。允许将TIME-WAIT sockets重新用于新的TCP连接。默认为0,表示关闭
  12. net.ipv4.tcp_tw_reuse = 1
  13. #表示开启TCP连接中TIME-WAIT sockets的快速回收。默认为0,表示关闭
  14. net.ipv4.tcp_tw_recycle = 1
  15. #表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间
  16. net.ipv4.tcp_fin_timeout = 30
  17. ##减少超时前的探测次数
  18. net.ipv4.tcp_keepalive_probes=5
  19. ##优化网络设备接收队列
  20. net.core.netdev_max_backlog=3000
  21. kernel.pid_max=64000
  22. fs.file-max = 640000


修改

/etc/security/limits.conf

在底部增加

  1. * soft nofile 640000
  2. * hard nofile 640000
  3. root soft nofile 640000
  4. root hard nofile 640000

如果有用到supervisord,修改

/etc/supervisord.conf

找到并修改

minfds=640000

如果有用到nginx,修改

/etc/nginx/nginx.conf

  1. user nginx;
  2. worker_processes 1;
  3. # 增加worker_rlimit_nofile
  4. worker_rlimit_nofile 640000;
  5. error_log /var/log/nginx/error.log warn;
  6. pid /var/run/nginx.pid;
  7. events {
  8. # 修改worker_connections
  9. worker_connections 640000;
  10. }

验证nginx的 max open files 是否生效

  1. grep 'open files' /proc/$(cat /var/run/nginx.pid)/limits

修改文件

/lib/systemd/system/nginx.service

在 [Service] 节点内添加

LimitNOFILE=700000

重启服务:

  1. sudo systemctl daemon-reload

按需重启服务器,使修改全部生效

  1. reboot

参考:
https://medium.com/@mshanak/soved-dotnet-core-too-many-open-files-in-system-when-using-postgress-with-entity-framework-c6e30eeff6d1

查看连接的汇总信息

  1. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'