Archived
Public Access
Remove automatic RTT mode
This commit is contained in:
@@ -197,6 +197,7 @@ net.ipv4.tcp_slow_start_after_idle = 0
|
|||||||
|
|
||||||
- 自动启用 `bbr` 拥塞控制和 `fq` 队列算法。
|
- 自动启用 `bbr` 拥塞控制和 `fq` 队列算法。
|
||||||
- 根据上传带宽和地区模式映射推荐 TCP buffer 档位。
|
- 根据上传带宽和地区模式映射推荐 TCP buffer 档位。
|
||||||
|
- 用户手动选择亚太、美欧或手动 RTT,不再按测速 RTT 自动判断。
|
||||||
- 亚太线路使用较保守的 buffer,美欧高延迟线路使用更大 buffer。
|
- 亚太线路使用较保守的 buffer,美欧高延迟线路使用更大 buffer。
|
||||||
- 按机器内存设置 TCP buffer 上限,避免小内存 VPS 过度放大缓冲区。
|
- 按机器内存设置 TCP buffer 上限,避免小内存 VPS 过度放大缓冲区。
|
||||||
- 同步写入 `net.core.rmem_max` / `net.core.wmem_max` / `tcp_rmem` / `tcp_wmem`。
|
- 同步写入 `net.core.rmem_max` / `net.core.wmem_max` / `tcp_rmem` / `tcp_wmem`。
|
||||||
@@ -206,10 +207,9 @@ net.ipv4.tcp_slow_start_after_idle = 0
|
|||||||
|
|
||||||
| 模式 | RTT 参考 |
|
| 模式 | RTT 参考 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 自动判断 | 使用 Speedtest Ping 自动分类 |
|
|
||||||
| 亚太线路 | 通常小于 `100ms` |
|
| 亚太线路 | 通常小于 `100ms` |
|
||||||
| 美欧线路 | 通常 `150-300ms` |
|
| 美欧线路 | 通常 `150-300ms` |
|
||||||
| 手动 RTT | 按用户输入计算 |
|
| 手动 RTT | 按用户输入 RTT,并手动选择亚太或美欧 buffer 档位 |
|
||||||
|
|
||||||
配置同样写入:
|
配置同样写入:
|
||||||
|
|
||||||
|
|||||||
+33
-44
@@ -298,71 +298,60 @@ read_positive_value() {
|
|||||||
|
|
||||||
# 函数:选择地区/RTT 模式
|
# 函数:选择地区/RTT 模式
|
||||||
select_tuning_rtt() {
|
select_tuning_rtt() {
|
||||||
local measured_ping="$1"
|
|
||||||
local choice=""
|
local choice=""
|
||||||
local default_rtt=""
|
local buffer_choice=""
|
||||||
|
|
||||||
|
while true; do
|
||||||
echo -e "\033[36m请选择线路模式:\033[0m"
|
echo -e "\033[36m请选择线路模式:\033[0m"
|
||||||
echo -e "\033[33m 1. 自动判断(按 Speedtest RTT)\033[0m"
|
echo -e "\033[33m 1. 亚太线路(RTT < 100ms)\033[0m"
|
||||||
echo -e "\033[33m 2. 亚太线路(RTT < 100ms)\033[0m"
|
echo -e "\033[33m 2. 美欧线路(RTT 150-300ms)\033[0m"
|
||||||
echo -e "\033[33m 3. 美欧线路(RTT 150-300ms)\033[0m"
|
echo -e "\033[33m 3. 手动输入 RTT\033[0m"
|
||||||
echo -e "\033[33m 4. 手动输入 RTT\033[0m"
|
echo -n -e "\033[36m请选择 (1-3): \033[0m"
|
||||||
echo -n -e "\033[36m请选择 (1-4,默认 1): \033[0m"
|
|
||||||
read -r choice
|
read -r choice
|
||||||
choice="${choice:-1}"
|
|
||||||
|
|
||||||
case "$choice" in
|
case "$choice" in
|
||||||
1)
|
1)
|
||||||
if is_positive_number "$measured_ping"; then
|
|
||||||
SMART_RTT_MS="$measured_ping"
|
|
||||||
if awk -v rtt="$SMART_RTT_MS" 'BEGIN { exit !(rtt < 100) }'; then
|
|
||||||
SMART_REGION="亚太"
|
SMART_REGION="亚太"
|
||||||
SMART_REGION_CODE="asia"
|
SMART_REGION_CODE="asia"
|
||||||
elif awk -v rtt="$SMART_RTT_MS" 'BEGIN { exit !(rtt <= 300) }'; then
|
|
||||||
SMART_REGION="美欧"
|
|
||||||
SMART_REGION_CODE="overseas"
|
|
||||||
else
|
|
||||||
SMART_REGION="高延迟"
|
|
||||||
SMART_REGION_CODE="overseas"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
SMART_REGION="手动"
|
|
||||||
SMART_REGION_CODE="asia"
|
|
||||||
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 80): \033[0m" "80")
|
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 80): \033[0m" "80")
|
||||||
fi
|
return 0
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
SMART_REGION="亚太"
|
|
||||||
SMART_REGION_CODE="asia"
|
|
||||||
default_rtt="80"
|
|
||||||
if is_positive_number "$measured_ping"; then
|
|
||||||
default_rtt="$measured_ping"
|
|
||||||
fi
|
|
||||||
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 ${default_rtt}): \033[0m" "$default_rtt")
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
SMART_REGION="美欧"
|
SMART_REGION="美欧"
|
||||||
SMART_REGION_CODE="overseas"
|
SMART_REGION_CODE="overseas"
|
||||||
default_rtt="220"
|
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 220): \033[0m" "220")
|
||||||
if is_positive_number "$measured_ping"; then
|
return 0
|
||||||
default_rtt="$measured_ping"
|
|
||||||
fi
|
|
||||||
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 ${default_rtt}): \033[0m" "$default_rtt")
|
|
||||||
;;
|
;;
|
||||||
4)
|
3)
|
||||||
SMART_REGION="手动"
|
|
||||||
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 100): \033[0m" "100")
|
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 100): \033[0m" "100")
|
||||||
if awk -v rtt="$SMART_RTT_MS" 'BEGIN { exit !(rtt < 120) }'; then
|
while true; do
|
||||||
|
echo -e "\033[36m请选择 buffer 档位模式:\033[0m"
|
||||||
|
echo -e "\033[33m 1. 亚太档位\033[0m"
|
||||||
|
echo -e "\033[33m 2. 美欧档位\033[0m"
|
||||||
|
echo -n -e "\033[36m请选择 (1-2): \033[0m"
|
||||||
|
read -r buffer_choice
|
||||||
|
case "$buffer_choice" in
|
||||||
|
1)
|
||||||
|
SMART_REGION="手动 RTT / 亚太档"
|
||||||
SMART_REGION_CODE="asia"
|
SMART_REGION_CODE="asia"
|
||||||
else
|
return 0
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
SMART_REGION="手动 RTT / 美欧档"
|
||||||
SMART_REGION_CODE="overseas"
|
SMART_REGION_CODE="overseas"
|
||||||
fi
|
return 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "\033[31m输入无效,使用自动判断。\033[0m"
|
echo -e "\033[31m请输入 1 或 2 选择 buffer 档位。\033[0m"
|
||||||
select_tuning_rtt "$measured_ping"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -e "\033[31m请输入 1、2 或 3 选择线路模式。\033[0m"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# 函数:应用 BBR v3 智能带宽优化
|
# 函数:应用 BBR v3 智能带宽优化
|
||||||
@@ -402,7 +391,7 @@ apply_smart_bandwidth_tuning() {
|
|||||||
download_mbps="$upload_mbps"
|
download_mbps="$upload_mbps"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
select_tuning_rtt "$SPEEDTEST_PING"
|
select_tuning_rtt
|
||||||
|
|
||||||
cap_mb=$(get_tcp_buffer_cap_mb)
|
cap_mb=$(get_tcp_buffer_cap_mb)
|
||||||
buffer_mb=$(calculate_smart_buffer_mb "$upload_mbps" "$SMART_REGION_CODE" "$cap_mb")
|
buffer_mb=$(calculate_smart_buffer_mb "$upload_mbps" "$SMART_REGION_CODE" "$cap_mb")
|
||||||
|
|||||||
Reference in New Issue
Block a user