Linux:每日知识小结

一、如果磁盘满了,但是df命令查看还有剩余:

du / -h --max-depth=1 命令查看各个目录的占用空间,找到占用较多空间的目录;

使用 lsof 检查,也可能是文件删除了,但是进程还在(占用);

df -i 命令查看 inode 的使用率,inode 不够也会导致此问题;

二、TimeWait问题优化方案

查看状态为TIME_WAIT的TCP连接
$ netstat -tan |grep TIME_WAIT

统计TCP各种状态的连接数
$ netstat -n | awk '/^tcp/ {++S[$NF]} END {for(i in S) print i, S[i]}'

MySQL卡死使用命令检查发现TIME_WAIT非常多,这时候可以修改系统内核参数文件vim /etc/sysctl.conf(因版本问题参数文件变成“ /usr/lib/sysctl.d/00-system.conf”(7版本之后))

增加:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

然后:systcl -p 命令使修改生效

#####

net.ipv4.tcp_syncookies = 1
//表示开启SYN cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭

net.ipv4.tcp_tw_reuse = 1
//表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1
//表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

net.ipv4.tcp_fin_timeout = 30
//修改系統默认的 TIMEOUT 时间

linux中MSL的值默认为60s,可以通过缩减MSL值来使得主动关闭连接一端由TIME_WAIT状态到关闭状态的时间减少(默认为四次挥手后等待60s关闭连接)

但是会导致延迟报文无法清除以及主动关闭连接一端不能收到重传来的FIN请求,也会影响基于TCP的应用的连接复用和调优

所以在实际生产环境中,需要谨慎操作

#查看默认的MSL值
$cat /proc/sys/net/ipv4/tcp_fin_timeout
#修改
$echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
或者
$ vim /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30

2.1 在HTTP/1.0协议中默认使用短连接,会导致TIME_WAIT非常多;可以将HTTP请求头里connection的值设置为:keep-alive。将短连接改成长连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好学技术oH

你的鼓励是一起学习的动力何阶梯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值