事实(请指出任何虚假陈述):
我在相距 80 毫秒的两个站点之间建立了 100 Mbps 的连接
这是一个长长的胖连接,可以从大 TCP 窗口大小中受益,可能高达 100 Mbps * 0.08 秒 = 1,000,000 字节
两台机器都运行Windows Server 2012。“接收窗口自动调整级别”在两台机器上都是正常的。两者都禁用了“窗口缩放启发式”。
我在一侧运行“iperf -s”,在另一侧运行“iperf -c”。传输速度为 5 Mbps。我在另一个方向得到相同的结果。
双方都在他们的 SYN 中宣传了对 TCP 滑动窗口的支持。
接收器在整个运行期间请求 64,512 字节 (0xFC00) 的 TCP 窗口大小,TCP 窗口缩放值为“无移位”(0x000)。
网络能够处理更大的窗口大小(参见下面的序列图)
接收器保持窗口小于网络支持
此连接发生在 IPSEC VPN 内。隧道接口的 MTU 减少到双向 1400 字节。
题
无答案
网络坏了
运行在同一网络上的 Linux 机器将 TCP 窗口打开到 1.5 兆字节并以 6 倍的带宽传输数据
启用窗口缩放启发式
窗口缩放启发式被禁用(参见下面的“netsh interface tcp show heuristics”的输出)
接收窗口自整定电平不正常
Receive Window Auto-Tuning Level 正常(见下面“netsh interface tcp show global”的输出)
这在 …
问题
我想在 Linux 上的 SSD 磁盘内的交换分区上启用后台TRIM 操作。根据几篇文章,例如这篇文章,内核会检测此配置并自动执行丢弃操作,但在我的测试中,尽管使用“丢弃”挂载选项来强制执行此行为,但它似乎不起作用。
设想
背景
这些是我用来检查后台 TRIM 是否在交换分区上工作的步骤:
TRIM 支持:检查 SSD 磁盘是否支持 TRIM 命令并且内核将设备标记为非旋转:
# hdparm -I /dev/sda | grep TRIM
* Data Set Management TRIM supported (limit 1 block)
* Deterministic read data after TRIM
# cat /sys/block/sda/queue/rotational
0
Run Code Online (Sandbox Code Playgroud)交换填充:挂载分区,清理所有 VM 缓存并配置 Linux 以积极交换,将 vm.swappiness 设置为 100。然后,运行一个脚本来分配所有可用内存并强制内核开始交换:
# swapon [--discard] /dev/sda2
# …Run Code Online (Sandbox Code Playgroud)