tcp_rfc1337 设置似乎有解决 TIME-WAIT 暗杀的方法。
第一个问题是新连接中可能会错误地接受旧的重复数据,导致发送的数据损坏。
第二个问题是连接可能会变得不同步并进入 ACK 循环,因为旧的重复数据包进入新连接,这将变得不同步。
第三个也是最后一个问题是旧的重复数据包可能会错误地进入新建立的连接并杀死新连接。
从我读到的内容来看,为了解决问题,设置的作用是在套接字处于 TIME-WAIT 状态时忽略 RST(重置)数据包。
那么,为什么默认情况下不启用此设置?使用这个有什么缺点?
当我研究如何阻止 SYN 泛洪攻击时,我实际上了解了这个变量。您认为此设置有助于阻止它们吗?
我有一台繁忙的服务器,设置了 RAID 1。该应用程序(在 PHP 中运行)对数据库 (MariaDB) 的读/写非常密集。
cronjobsmartctl
每天运行简短的测试并检查smartctl -H
和的输出mdadm -D
。
有时我想运行长时间测试,但我担心它对性能的影响。我读到可能需要几个小时才能完成。如果它导致服务器性能在运行时下降,我的用户将受到 5 个多小时的影响。
所以,这里有几个问题:
1) 长时间的智能测试通常会影响对用户来说很重要的性能吗?
2)既然我有RAID 1并且做了短测试,那么长测试还需要吗?
3)如果我发现长时间测试对服务器性能造成了问题,是否有办法停止它?
在我拥有的带有 HDD 或 SSD 的服务器上,我有一个定期运行的 cron:
/usr/sbin/smartctl --test=short/long /dev/sd1
Run Code Online (Sandbox Code Playgroud)
(对于每个磁盘)
当它运行时,它只是查看 的输出/usr/sbin/smartctl -c /dev/sd1
,循环直到它不再包含:
[0-9]+% of test remaining.
Run Code Online (Sandbox Code Playgroud)
然后检查它是否完成且没有错误:
( 0) The previous self-test routine completed
Run Code Online (Sandbox Code Playgroud)
smartctl
但是,从版本 7.0 开始,似乎尚不支持 NVMe 测试:https : //www.smartmontools.org/wiki/NVMe_Support
它确实这么说
smartd 守护进程跟踪运行状况 (-H)、错误计数 (-l error) 和温度 (-W DIFF,INFO,CRIT)
但实际运行测试的是什么?我不确定 和 的输出是否会-H
更新-l
,除非我们运行短/长测试?
我还阅读了有关 的内容nvme-cli
,但我似乎没有找到用它在磁盘上运行运行状况测试的方法。
有任何想法吗?
这里使用 CentOS 7。
我意识到在 Docker 容器内运行的进程出现在主机的进程列表中:
# ps aux | grep mariadb
root 12486 0.0 0.0 112812 976 pts/0 S+ 14:47 0:00 grep --color=auto mariadb
Run Code Online (Sandbox Code Playgroud)
有没有办法识别进程是在主机上运行还是在 Docker 容器上运行,或者有办法过滤掉 Docker 进程?