Postgres 关于wal文件传输能力上限的测试【rsync + SSH 串行归档环境】
在 PostgreSQL 使用 archive_command = 'rsync -a %p user@archive_host:/path/%f' 的串行归档模型下,即使网络与磁盘性能完全正常,整体归档吞吐仍然会被。完成一次ssh连接大约0.22s,传输一个16MB文件大约0.11s,加起来是0.33s。简单计算下,16/0.33= 48,每秒钟是48MB的数据,换算成mbps,就是47。本文通
本文是对上一篇文章的延伸,对当时的分析做出有数据支撑的判断https://blog.csdn.net/Gents_hu/article/details/157733233
https://blog.csdn.net/Gents_hu/article/details/157733233
rsync + SSH 串行归档的性能上限复现与证据分析
结论先行
在 PostgreSQL 使用 archive_command = 'rsync -a %p user@archive_host:/path/%f' 的串行归档模型下,即使网络与磁盘性能完全正常,整体归档吞吐仍然会被
SSH 会话建立的固定成本
一、问题背景
生产环境使用如下归档模型(已脱敏):
archive_command = 'rsync -a %p postgres@<ARCHIVE_HOST>:/<ARCHIVE_PATH>/%f'
该模型特征:
- 每个 WAL 段 独立触发一次 rsync
- rsync 通过 SSH 建立连接
- archive_command 串行执行
- 无连接复用、无并行
事故现象:
- WAL 持续堆积
- 网络带宽未打满
- 磁盘 IO 未长期 100%
- CPU 使用率正常
二、实验环境(脱敏)
| 角色 | 标识 |
|---|---|
| 发送端 | Host A |
| 接收端 | Host B |
- OS:Linux
- 用户:postgres
- SSH:免密登录
- 网络:同区域直连
- 执行方式:单线程串行
三、测试数据规模(与生产一致)
单文件大小:16 MiB
文件数量:960
总数据量:15 GiB(15360 MiB)
文件名连续编号,模拟 WAL 段行为。
四、前置实验:单次 SSH 会话固定成本
测试命令(Host A)
sudo -u postgres ssh -o BatchMode=yes postgres@<HOST_B> "true"
连续执行 50 次并统计耗时:
for i in {1..50}; do
/usr/bin/time -f "%e" \\
ssh -o BatchMode=yes \\
-o Compression=no \\
-o ControlMaster=no \\
-o ControlPath=none \\
-o ControlPersist=no \\
postgres@<HOST_B> true \\
2>&1 >/dev/null
done | tee /tmp/ssh_connect_cost.log
统计结果:
awk '
{ sum+=$1; cnt++; arr[cnt]=$1 }
END{
asort(arr);
printf "count=%d avg=%.3f p95=%.3f\\n", cnt, sum/cnt, arr[int(cnt*0.95)]
}' /tmp/ssh_connect_cost.log
输出(实测):
count=50 avg=0.204 p95=0.230
结论:
单次 SSH 新建连接的固定成本约为 0.2 秒
五、生成测试数据(15 GiB / 960 文件)
执行命令(Host A)
sudo -u postgres -i bash <<'EOF'
BASE=/tmp/wal_test
SEG_MB=16
COUNT=960
rm -rf "$BASE"
mkdir -p "$BASE"
cd "$BASE"
for i in $(seq -w 1 "$COUNT"); do
f="0000000100000000000000${i}"
fallocate -l ${SEG_MB}M "$f"
done
du -sh "$BASE"
ls -1 | wc -l
EOF
输出(实测):
16G /tmp/wal_test
960
六、三组对照实验(含原始 shell 记录)
EXP1:每段一次 rsync(无 SSH 复用)
sudo -u postgres ssh postgres@<HOST_B> "rm -rf /archive_test && mkdir -p /archive_test"
sudo -u postgres -i bash <<'EOF'
SRC=/tmp/wal_test
DST="postgres@<HOST_B>:/archive_test/"
start=$(date +%s)
count=0
for f in "$SRC"/*; do
rsync -a -e "ssh -o BatchMode=yes -o Compression=no" "$f" "$DST" >/dev/null
count=$((count+1))
done
end=$(date +%s)
elapsed=$((end-start))
echo "files=$count elapsed=${elapsed}s"
EOF
输出(实测):
files=960 elapsed=327s
流量监控部分截取
avg-cpu: %user %nice %system %iowait %steal %idle
14.65 0.00 16.16 4.55 0.00 64.65
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 199.00 49217.50 0.00 0.00 2.94 247.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.59 11.00
avg-cpu: %user %nice %system %iowait %steal %idle
8.76 0.00 12.89 5.15 0.52 72.68
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 195.00 49182.50 0.00 0.00 3.02 252.22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.59 10.00
avg-cpu: %user %nice %system %iowait %steal %idle
8.81 0.00 15.03 4.15 0.52 71.50
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 196.00 49183.00 0.00 0.00 3.01 250.93 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.59 9.00
avg-cpu: %user %nice %system %iowait %steal %idle
16.26 0.00 15.27 2.96 0.00 65.52
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 198.00 49213.00 0.00 0.00 2.99 248.55 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.59 9.00
avg-cpu: %user %nice %system %iowait %steal %idle
18.81 0.00 12.87 3.96 0.00 64.36
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 199.00 49215.00 2.00 1.00 2.98 247.31 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.59 9.00
avg-cpu: %user %nice %system %iowait %steal %idle
16.06 0.00 11.40 3.11 0.00 69.43
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 200.00 49214.50 0.00 0.00 2.97 246.07 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.59 9.00
avg-cpu: %user %nice %system %iowait %steal %idle
15.10 0.00 12.50 3.12 0.00 69.27
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 197.00 49183.00 0.00 0.00 4.03 249.66 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.79 13.00
avg-cpu: %user %nice %system %iowait %steal %idle
18.97 0.00 9.74 2.05 0.00 69.23
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 135.00 32834.00 0.00 0.00 3.71 243.21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.50 8.00
avg-cpu: %user %nice %system %iowait %steal %idle
12.95 0.00 16.58 3.11 0.00 67.36
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 535.00 52323.50 7.00 1.29 1.67 97.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.89 16.00
avg-cpu: %user %nice %system %iowait %steal %idle
16.67 0.00 14.65 0.51 0.00 68.18
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 201.00 49249.00 2.00 0.99 1.53 245.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.31 4.00
EXP2:每段一次 rsync(启用 SSH 连接复用)
sudo -u postgres -i bash <<'EOF'
SRC=/tmp/wal_test
DST="postgres@<HOST_B>:/archive_test/"
SOCK=/tmp/ssh_mux_demo
ssh -MNf -o ControlMaster=yes -o ControlPersist=300 -o ControlPath=$SOCK postgres@<HOST_B>
start=$(date +%s)
count=0
for f in "$SRC"/*; do
rsync -a -e "ssh -o ControlMaster=auto -o ControlPath=$SOCK" "$f" "$DST" >/dev/null
count=$((count+1))
done
end=$(date +%s)
elapsed=$((end-start))
ssh -O exit -o ControlPath=$SOCK postgres@<HOST_B>
echo "files=$count elapsed=${elapsed}s"
EOF
输出(实测):
files=960 elapsed=131s
流量监控部分截取
avg-cpu: %user %nice %system %iowait %steal %idle
19.31 0.00 11.88 0.00 0.00 68.81
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 3.00 33.00 0.00 0.00 1.00 11.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
16.75 0.00 9.42 0.00 0.00 73.82
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 6.00 70.00 0.00 0.00 1.00 11.67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 1.00
avg-cpu: %user %nice %system %iowait %steal %idle
17.53 0.00 12.37 9.79 0.00 60.31
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 597.00 134813.00 3.00 0.50 2.82 225.82 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.68 19.00
avg-cpu: %user %nice %system %iowait %steal %idle
13.27 0.00 17.35 33.67 0.00 35.71
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 624.00 80471.50 1.00 0.16 9.12 128.96 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.69 49.00
avg-cpu: %user %nice %system %iowait %steal %idle
15.90 0.00 13.85 5.13 0.00 65.13
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 712.00 99828.00 5.00 0.70 2.15 140.21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.53 14.00
avg-cpu: %user %nice %system %iowait %steal %idle
16.58 0.00 14.07 0.00 0.00 69.35
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 6.00 67.00 0.00 0.00 0.50 11.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
14.07 0.00 17.09 6.53 0.00 62.31
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 491.00 66654.00 5.00 1.01 1.91 135.75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.94 8.00
avg-cpu: %user %nice %system %iowait %steal %idle
16.50 0.00 14.00 0.00 0.00 69.50
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 6.00 73.00 0.00 0.00 1.00 12.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
15.62 0.00 14.06 9.90 0.00 60.42
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 649.00 99567.00 3.00 0.46 2.46 153.42 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.60 16.00
EXP3:单次 rsync 整个目录
sudo -u postgres -i bash <<'EOF'
SRC=/tmp/wal_test/
DST="postgres@<HOST_B>:/archive_test/"
start=$(date +%s)
rsync -a --info=progress2 -e "ssh -o BatchMode=yes" "$SRC" "$DST"
end=$(date +%s)
elapsed=$((end-start))
echo "elapsed=${elapsed}s"
EOF
输出(实测):
elapsed=116s
流量监控部分截取
avg-cpu: %user %nice %system %iowait %steal %idle
26.64 0.00 28.04 24.77 0.00 20.56
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 503.00 128042.00 0.00 0.00 11.92 254.56 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 6.00 99.00
avg-cpu: %user %nice %system %iowait %steal %idle
22.77 0.00 31.19 25.74 0.00 20.30
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 504.00 128301.00 0.00 0.00 11.89 254.57 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.99 98.00
avg-cpu: %user %nice %system %iowait %steal %idle
25.00 0.00 28.06 11.22 0.00 35.71
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 241.00 61696.00 0.00 0.00 11.96 256.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.88 47.00
avg-cpu: %user %nice %system %iowait %steal %idle
25.35 0.00 30.05 3.29 0.00 41.31
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 259.00 65583.50 0.00 0.00 3.02 253.22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.78 14.00
avg-cpu: %user %nice %system %iowait %steal %idle
30.20 0.00 27.23 9.90 0.00 32.67
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 893.00 227364.00 0.00 0.00 3.22 254.61 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.87 48.00
avg-cpu: %user %nice %system %iowait %steal %idle
34.13 0.00 22.12 22.60 0.00 21.15
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 505.00 128301.00 0.00 0.00 11.88 254.06 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 6.00 95.00
avg-cpu: %user %nice %system %iowait %steal %idle
26.70 0.00 27.18 24.76 0.49 20.87
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 503.00 128272.00 0.00 0.00 11.93 255.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 6.00 99.00
avg-cpu: %user %nice %system %iowait %steal %idle
29.27 0.00 28.29 22.93 0.00 19.51
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 502.00 128024.00 0.00 0.00 11.89 255.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.97 98.00
avg-cpu: %user %nice %system %iowait %steal %idle
30.15 0.00 22.11 11.06 0.00 36.68
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 237.00 59949.00 0.00 0.00 11.89 252.95 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.82 46.00
七、真实测试结果汇总(来自本次实验)
吞吐统一使用
Mbps
换算关系:1 MiB/s ≈ 8.39 Mbps
| 实验 | 模型 | 文件数 | SSH 会话数 | 总耗时 (s) | 吞吐(Mbps,计算) | 网络接收速率(Mbps,sar) | 主要瓶颈 |
|---|---|---|---|---|---|---|---|
| EXP1 | 每文件一次 rsync(无复用) | 960 | 960 | 327 | ≈ 394 Mbps | ≈ 390–420 Mbps | SSH 新建连接固定成本 |
| EXP2 | 每文件一次 rsync(SSH 复用) | 960 | ~1 | 131 | ≈ 984 Mbps | ≈ 950–1,050 Mbps | rsync/协议 + 传输 |
| EXP3 | 单次 rsync 整个目录 | 960 | 1 | 116 | ≈ 1,112 Mbps | ≈ 1,200–1,350 Mbps | 归档端磁盘写入 |
所有数值均来自本次实测,不是理论估算。
八、证据链闭环分析
1️⃣ 连接成本 = 性能损失(EXP1 vs EXP2)
- 单次 SSH 新建连接成本:0.204 s
- 文件数:960
理论连接成本:
0.204 × 960 ≈ 195.8 s
实测差值:
EXP1 − EXP2 = 327 − 131 = 196 s
理论值与实测值几乎完全一致
⇒ EXP1 中约
60% 的时间浪费在 SSH 建连上
生产环境的流量

2️⃣ 网络不是瓶颈(sar 证据)
- EXP1:≈ 400 Mbps
- EXP2:≈ 1 Gbps
- EXP3:≈ 1.3 Gbps
- 网卡利用率始终未接近上限
网络带宽充足,吞吐稳定
⇒ 排除网络瓶颈
3️⃣ 瓶颈迁移路径非常清晰
- EXP1:SSH 会话建立(模型级瓶颈)
- EXP2:rsync/协议 + 单流传输
- EXP3:归档端磁盘写入(%util≈100%,iowait 明显)
九、为什么生产中“看起来都正常,但 WAL 仍然堆积”
完成一次ssh连接大约0.22s,传输一个16MB文件大约0.11s,加起来是0.33s。简单计算下,16/0.33= 48,每秒钟是48MB的数据,换算成mbps,就是478=376 mbps*
在生产模型(EXP1)下:
- 实测归档能力上限 ≈ 47 MiB/s(≈ 394 Mbps)
- archive_command 串行执行
- 无并行、无连接复用
只要 WAL 产生速率持续高于该上限,就会出现:
- WAL backlog 持续增长
- 网络与磁盘监控“看起来没满”
- 实际系统已进入“归档能力不足”状态
十、结论
本文通过三组真实可复现实验,证明 PostgreSQL 使用 rsync + SSH 串行归档时,其性能上限由
SSH 会话建立的固定成本
更多推荐
所有评论(0)