System Buffer Tuning - TCP and Network Performance Optimization
Bruffer System Tooting: The Culprilt ที่ซ่อนอยู่เบื้องหลัง "ปัญหาการทํางาน"
สรุปผู้บริหาร
วิศวกรเครือข่ายมักจะพบสถานการณ์ ที่การหน้าต่างแบบ TCP หรือการแสดงของโปรแกรม ถูกตําหนิในโครงสร้างพื้นฐานเครือข่าย หลังจากดําเนินการจับแพ็กเกจอย่างกว้างขวาง, tcpdops, และวิเคราะห์เครือข่ายแล้ว มักจะพบคอขวดที่แท้จริง: NIC อ่อนล้า (Network interform cards) หรือ OS-ระดับบัฟเฟอร์บนระบบไคลเอนต์หรือเซิร์ฟเวอร์
บทความ นี้ ให้ ทั้ง มรดก (ซีร์ กา 2009) และ ปัจจุบัน คือ (2025-2026) การปรับแต่งบัฟเฟอร์สําหรับลินุกซ์, วินโดวส์, และแมโกส พร้อมกับเทคนิคการวินิจฉัยโรค เพื่อระบุความอ่อนแรงของบัฟเฟอร์ก่อนที่จะกลายเป็นประเด็นที่สําคัญ
อาการ ทั่ว ไป ของ การ หมด เรี่ยว แรง
- TCP Zero Windows in access
- อัตรา การ ทดแทน สูง ทั้ง ๆ ที่ สาย เกิน ไป ของ เครือ ข่าย
- โปรแกรมสามารถผ่านเข้าทางด้านล่าง
- การ ลด น้ํา หนัก ภาย ใต้ การโหลด ที่ ปรับ ปรุง เมื่อ ภาระ ลด
- การทํางานไม่สอดคล้องกันระหว่างการปรับแต่งฮาร์ดแวร์ที่คล้ายกัน
- Comment=รายการจดหมายName
การ เข้าใจ ปัญหา
The TCP Windows sclasing Mechanis
TCP ใช้กลไกควบคุมการไหล ซึ่งตัวรับโฆษณาขนาด "หน้าต่าง" ระบุว่าสามารถรับข้อมูลได้มากแค่ไหน เมื่อบัฟเฟอร์ของระบบเติมบ่งหน้าต่างนี้ให้เหลือศูนย์ ให้บังคับให้ผู้ส่งรอ นี้ปรากฏเป็นปัญหาเครือข่าย แต่จริง ๆ แล้วเป็นปัญหาทรัพยากรโฮสต์
ที่ ที่ มี ความ สําคัญ
- Group Broffs (SO SDBUF/SO RVBUF): Per-Socket ส่งอีเมลและรับบัฟเฟอร์
- บัฟเฟอร์ของหน้าต่าง TCP: ขนาดหน้าต่างสูงสุดสําหรับการเชื่อมต่อ
- บัฟเฟอร์อุปกรณ์เครือข่าย: แผ่นบัฟเฟอร์วงแหวน NIC สําหรับการเรียงแพ็กเกจ
- หน่วยความจําทั้งระบบ: รวมหน่วยความจําทั้งหมดสําหรับเครือข่าย
คําสั่งการตรวจสอบ
การวินิจฉัยของลินุกซ์
# Check current TCP buffer settings sysctl net.ipv4.tcp_rmem sysctl net.ipv4.tcp_wmem sysctl net.core.rmem_max sysctl net.core.wmem_max # Check NIC ring buffer sizes ethtool -g eth0 # Monitor socket buffer usage ss -tm # Check for TCP zero window events tcpdump -i any 'tcp[tcpflags] & tcp-push != 0' -vv # Check network statistics for buffer issues netstat -s | grep -i "buffer\|queue\|drop"
การวินิจฉัยของวินโดวส์
# Check TCP parameters
netsh interface tcp show global
# View network adapter buffer settings
Get-NetAdapterAdvancedProperty -Name "Ethernet" | Where-Object {$_.DisplayName -like "*buffer*"}
# Monitor TCP statistics
netstat -s -p tcp
# Check receive window auto-tuning
netsh interface tcp show global | findstr "Receive Window"
การ วินิจฉัย แบบ ผิด ๆ
# Check current buffer settings sysctl kern.ipc.maxsockbuf sysctl net.inet.tcp.sendspace sysctl net.inet.tcp.recvspace # View network statistics netstat -s -p tcp # Monitor socket buffers netstat -an -p tcp
แว่นบัฟเฟอร์ของลินุกซ์
ตั้งค่าลินุกซ์ (Circa 2009)
| พารามิเตอร์ | (2009) | คําอธิบาย |
|---|---|---|
| net.core.rmem ค่าปริยาย | 124928 (122KB) พ.ศ. | ลบทั้งเธรด |
| net.core.rmem max | 131071 (128KB) | รับค่าบัฟเฟอร์สูงสุด |
| net.core. wmm ค่าปริยาย | 124928 (122KB) | ลบทั้งเธรด |
| net.core. wem max | 131071 (128KB) | ขนาดบัฟเฟอร์ส่งสูงสุด |
| net.ipv4.tcp rmem | 4096 87380 174760 | รับบัฟเฟอร์ของ TCP: นาที, ค่าปริยาย, ค่าสูงสุด (เป็นไบต์) |
| net.ipv4.tcp wmm | 4096 16384 131072 | ตัฟเฟอร์ของ TCP: นาที, ค่าปริยาย, ค่าสูงสุด (ค่าไบต์) |
| net.ipv4.tcp mem | 196608 262144 393216 | หน้าหน่วยความจํา TCP: ต่ํา, กด, สูง |
| net.core.netdv max backlog | 1000 | จํานวนแพกเกจสูงสุดในคิวนําเข้า |
| net.core.optmem max | 10240 (10KB) พ.ศ. | ขนาดบัฟเฟอร์สูงสุดต่อซ็อกเก็ต |
ตั้งค่าลินุกซ์ปัจจุบัน (2025-26)
| Parameter | ค่าที่แนะนําในปัจจุบัน | Description |
|---|---|---|
| net.core.rmem_default | 16777216 (16MB) พ.ศ. | Default receive socket buffer size |
| net.core.rmem_max | 134217728 (128 MB) | Maximum receive socket buffer size |
| net.core.wmem_default | 16777216 (16MB) | Default send socket buffer size |
| net.core.wmem_max | 134217728 (128MB) | Maximum send socket buffer size |
| net.ipv4.tcp_rmem | 4096 87380 134217728 (พ.ศ. | รับบัฟเฟอร์ TCP: นาที, ค่าปริยาย, ค่าสูงสุด (128MB) |
| net.ipv4.tcp_wmem | 4096 65536 134217728 (พ.ศ. | ตัฟเฟอร์สําหรับส่ง TCP: นาที, ค่าปริยาย, ค่าสูงสุด (128MB) |
| net.ipv4.tcp_mem | 8388608 12582912 16777216 | หน้าหน่วยความจํา TCP: ต่ํา, กด, สูง (64GB) |
| net.core.netdev_max_backlog | 250000 | จํานวนแพกเกจสูงสุดในคิวป้อนข้อมูล (10GBE+) |
| net.core.optmem_max | 65536 (64KB) พ.ศ. | Maximum ancillary buffer size per socket |
| net.ipv4.tcp concesssion ควบคุม | bbr | ใช้การควบคุมระบบ BBR (อัลกอริทึมของโกเกิล) |
| net. ppv4.tcp wow scalling | 1 | เปิดใช้การปรับขนาดหน้าต่างแบบ TCP (RFC 1323) |
| net. ppv4.tcp timestamps | 1 | เปิดใช้การบันทึกเวลาของ TCP สําหรับค่าที่ดีขึ้นของ RTT |
| net. pipv4. tcp sack | 1 | เปิดการใช้งานตัวเลือก |
| net.ipv4.tcp no mode บันทึก | 1 | ปิดการใช้งานการจับเมตริกของ TCP |
โปรแกรมปรับแต่งลินุกซ์
เพิ่มการตั้งค่าเหล่านี้ไปยัง /etc/sysctl.conf หรือสร้างแฟ้มใหม่ /etc/sysctl.d/99-network-tuning.conf-
# Network Buffer Tuning for High-Performance Applications # Optimized for 10GbE+ networks with RTT up to 300ms # Core socket buffer settings net.core.rmem_default = 16777216 net.core.rmem_max = 134217728 net.core.wmem_default = 16777216 net.core.wmem_max = 134217728 # TCP buffer settings net.ipv4.tcp_rmem = 4096 87380 134217728 net.ipv4.tcp_wmem = 4096 65536 134217728 net.ipv4.tcp_mem = 8388608 12582912 16777216 # Device buffer settings net.core.netdev_max_backlog = 250000 net.core.netdev_budget = 50000 net.core.netdev_budget_usecs = 5000 net.core.optmem_max = 65536 # TCP optimizations net.ipv4.tcp_congestion_control = bbr net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_sack = 1 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1 # Apply with: sysctl -p /etc/sysctl.d/99-network-tuning.conf
แผงวงจร NIC
# Check current ring buffer sizes ethtool -g eth0 # Set maximum ring buffer sizes (adjust based on NIC capabilities) ethtool -G eth0 rx 4096 tx 4096 # Make persistent by adding to /etc/network/interfaces or systemd service
- หน่วยความจําต่อการเชื่อมต่อ: การเชื่อมต่อแต่ละครั้งสามารถใช้ได้ถึง rmem max + wmem max (256 MB กับ 128 MBBBs)
- ลูกเล่นทั้งหมดของระบบ: การเชื่อมต่อ 1,000 × 256MB = 256GB ศักย์การใช้งาน
- การประมาณความปลอดภัย: การเชื่อมต่อสูงสุดที่ทํางานอยู่ × 256MB ไม่ควรเกิน 50% ของ RAM ของระบบ
- ตัวอย่าง: เซิร์ฟเวอร์ 64GB ควรจํากัดการเชื่อมต่อสูงสุดที่ ~125 เชื่อมต่อแบบถอดเสียบแบบความเร็วสูงด้วย 128 MB
- แนะนําเซิร์ฟเวอร์ด้วย RAM <16GB: ลดบัฟเฟอร์เป็นค่าสูงสุด 16-32 MB และปรับแก้ค่า tcp mum ตามสัดส่วน
กล่องบัฟเฟอร์ของวินโดวส์
ตั้งค่าต่าง ๆ ของวินโดวส์ (Circa 2009 - วินโดวส์วิสต้า/7/ server 2008)
| Parameter | Legacy Value (2009) | ตําแหน่ง |
|---|---|---|
| ขนาด TcpWindowsize | 65535 (64KB) พ.ศ. | การลงทะเบียน: HKLM / System\ September Control Pet\ Serviews\ Tcpip/Parmeters |
| Tcp1323Opts | 0 (แก้ไขได้) | ปิดการใช้งานการปรับขนาดหน้าต่างโดยปริยาย |
| ค่าปริยายReceive Window | 8192 (8KB) | หน้าต่างปริยายที่ได้รับ |
| ค่าปริยาย | 8192 (8KB) | หน้าต่างจดหมายปริยาย |
| GlobalMaxTcpWindowsize | 65535 (64KB) | ขนาดหน้าต่างสูงสุด TCP |
| การเลือกตั้ง TcpNum | 16777214 | เชื่อมต่อ TCP สูงสุด |
ตั้งค่าหน้าต่างปัจจุบัน (วินโดว์ส 10/11/ server 2019- 25)
วินโดวส์สมัยใหม่ใช้ รับค่าหน้าต่างอัตโนมัติ คุณสมบัติต่าง ๆ ที่มีการปรับเปลี่ยนอย่างฉับพลัน รับบัฟเฟอร์จากเงื่อนไขเครือข่าย
| คุณสมบัติ | การตั้งค่าที่แนะนําในปัจจุบัน | Description |
|---|---|---|
| ระดับการวนอัตโนมัติ | ปกติ (หรือการทดลองสูงสําหรับ 10GBE+) | ได้รับการปรับปรุงหน้าต่างแบบไม่ตายตัว |
| รับ- Side Scaling (RSS) | เปิด | เซ็กเมนต์: |
| การโหลดของคิมนีย์ | อัตโนมัติ (หรือปิดการใช้งาน NICS ปัจจุบัน) | โหลด TCP ไปยังฮาร์ดแวร์ NICName |
| เน็ตดีมา | ปิดการใช้งาน | การเข้าถึงหน่วยความจําโดยตรง (หมดอายุ) |
| พารามิเตอร์ต่าง ๆ ของ TCP | ดูคําสั่งด้านล่างนี้ | ตั้งค่า TCP ทั่วระบบ |
| ผู้จัดการการร้องเรียน | CUBIC (หรือนิวรีโนแบ็ค) | อัลกอริธึมควบคุมระบบ TCP |
คําสั่งปรับแต่งวินโดวส์
# Check current auto-tuning level netsh interface tcp show global # Enable auto-tuning (normal mode - default for most scenarios) netsh interface tcp set global autotuninglevel=normal # For high-bandwidth, high-latency networks (10GbE+, data center environments) netsh interface tcp set global autotuninglevel=experimental # For conservative tuning (if experimental causes issues) netsh interface tcp set global autotuninglevel=restricted # For very conservative tuning (not recommended for high-performance networks) netsh interface tcp set global autotuninglevel=highlyrestricted # Enable CUBIC congestion provider (Windows Server 2022/Windows 11+ only) netsh interface tcp set supplemental template=Internet congestionprovider=cubic # Note: Windows 10 and Server 2019 use Compound TCP or NewReno by default # CUBIC is not available on these older versions # Enable Receive-Side Scaling (RSS) netsh interface tcp set global rss=enabled # Set chimney offload (automatic is recommended) netsh interface tcp set global chimney=automatic # Disable NetDMA (recommended for modern systems) netsh interface tcp set global netdma=disabled # Enable Direct Cache Access (if supported) netsh interface tcp set global dca=enabled # Enable ECN (Explicit Congestion Notification) netsh interface tcp set global ecncapability=enabled # Set initial congestion window to 10 (RFC 6928) netsh interface tcp set global initialRto=3000
ตั้งค่าต่าง ๆ ของบริการ NIC Befferขั้นสูง (ตัวจัดการอุปกรณ์ หรือ Powerl)
# View current adapter settings Get-NetAdapterAdvancedProperty -Name "Ethernet" # Increase receive buffers (adjust based on NIC) Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Receive Buffers" -DisplayValue 2048 # Increase transmit buffers Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Transmit Buffers" -DisplayValue 2048 # Enable Jumbo Frames (if network supports it) Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Jumbo Packet" -DisplayValue 9014 # Enable Large Send Offload (LSO) Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue Enabled Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload V2 (IPv6)" -DisplayValue Enabled
การลงทะเบียน Tweaks (Advanized - ใช้ร่วมกับคําเตือน)
# These settings are typically NOT needed on Windows 10/11 due to auto-tuning # Only modify if auto-tuning is disabled or problematic # Registry path: HKLM\System\CurrentControlSet\Services\Tcpip\Parameters # Maximum TCP window size (if auto-tuning disabled) # TcpWindowSize = 16777216 (16MB) - REG_DWORD # Enable window scaling (enabled by default on modern Windows) # Tcp1323Opts = 3 - REG_DWORD # Number of TCP Timed Wait Delay # TcpTimedWaitDelay = 30 - REG_DWORD (default 240)
MacOS Broffing
ตั้งค่าต่าง ๆ ของ MacOS (Circa 2009 - Mac OS X 10. 5/10. 6)
| Parameter | Legacy Value (2009) | Description |
|---|---|---|
| Kern.pc.maxccccobf | 262144 (256KB) พ.ศ. | ขนาดบัฟเฟอร์ของซ็อกเก็ตสูงสุด |
| net.inet.tcp.sendspace | 32768 (32KB) พ.ศ. | บัฟเฟอร์ปริยายของ TCP |
| net.inet.tcp.recv space | 32768 (32KB) | บัฟเฟอร์ปริยายของ TCP |
| net.inet.tcp.aurvbufmax | 131072 (128KB) | บัฟเฟอร์ที่ได้รับอัตโนมัติ |
| net.inet.tcp.autosndbufmax | 131072 (128KB) | บัฟเฟอร์ที่ส่งอัตโนมัติ |
| net.inet.tcp.rfc1323 | 0 (disabled) | ปรับขนาดหน้าต่างแบบ TCP |
ตั้งค่า MacOS ปัจจุบัน (MacOS 12- 15 Montrey ผ่าน Sequoia)
| Parameter | Current Recommended Value | Description |
|---|---|---|
| kern.ipc.maxsockbuf | 8388608 (8 MB) พ.ศ. | Maximum socket buffer size |
| net.inet.tcp.sendspace | 131072 (128KB) | Default TCP send buffer |
| net.inet.tcp.recvspace | 131072 (128KB) | Default TCP receive buffer |
| net.inet.tcp.autorcvbufmax | 16777216 (16MB) | Maximum auto-tuned receive buffer |
| net.inet.tcp.autosndbufmax | 16777216 (16MB) | Maximum auto-tuned send buffer |
| net.inet.tcp.rfc1323 | 1 (ใช้ได้) | เปิดใช้การปรับขนาดหน้าต่างแบบ TCP |
| ตาข่าย.inet.tcp.ack | 1 (enabled) | Enable Selective Acknowledgment |
| net.inet.tcp.msflasht | 1440 | ขนาดสัญลักษณ์ปริยายของ TCP |
| net.inet.tcp.delated ack | 3 | พฤติกรรม ที่ หน่วง เหนี่ยว |
โปรแกรมปรับแต่ง McOS
# Check current settings sysctl kern.ipc.maxsockbuf sysctl net.inet.tcp.sendspace sysctl net.inet.tcp.recvspace sysctl net.inet.tcp.autorcvbufmax sysctl net.inet.tcp.autosndbufmax # Apply settings temporarily (until reboot) sudo sysctl -w kern.ipc.maxsockbuf=8388608 sudo sysctl -w net.inet.tcp.sendspace=131072 sudo sysctl -w net.inet.tcp.recvspace=131072 sudo sysctl -w net.inet.tcp.autorcvbufmax=16777216 sudo sysctl -w net.inet.tcp.autosndbufmax=16777216 sudo sysctl -w net.inet.tcp.rfc1323=1 sudo sysctl -w net.inet.tcp.sack=1 # Make settings persistent (create /etc/sysctl.conf) sudo tee /etc/sysctl.conf <กําลังสร้างเด็มมอนสําหรับการตั้งค่าความต่อเนื่อง
# Create /Library/LaunchDaemons/com.local.sysctl.plist sudo tee /Library/LaunchDaemons/com.local.sysctl.plist <EOF sudo chmod 644 /Library/LaunchDaemons/com.local.sysctl.plist sudo launchctl load /Library/LaunchDaemons/com.local.sysctl.plist Label com.local.sysctl ProgramArguments /usr/sbin/sysctl -w kern.ipc.maxsockbuf=8388608 RunAtLoad คําเตือน: MacOS Trata (13) และต่อมามีการจํากัดการรักษาความ ซื่อ สัตย์ มั่นคงของระบบ (SIP). พารามิเตอร์ของเคอร์เนลบางตัว อาจจะไม่สามารถปรับได้แม้จะต้องใช้sudo การตั้งค่าการทดสอบในสภาพแวดล้อมของคุณ
การทดสอบและตรวจสอบความถูกต้อง
เครื่องมือสําหรับทดสอบประสิทธิภาพการบัฟเฟอร์
IPerf3 - ทดสอบประสิทธิภาพของเครือข่าย
# Server side iperf3 -s # Client side - test TCP throughput iperf3 -c server_ip -t 60 -i 5 -w 16M # Test with multiple parallel streams iperf3 -c server_ip -P 10 -t 60 # Test UDP performance iperf3 -c server_ip -u -b 1000M -t 60
Tcpdup - จับภาพขนาดหน้าต่าง TCP
# Capture and display TCP window sizes tcpdump -i any -n 'tcp' -vv | grep -i window # Save capture for Wireshark analysis tcpdump -i any -w /tmp/capture.pcap 'tcp port 443'
โปรแกรมวิเคราะห์ระบบไร้สาย
มองหาตัวบ่งชี้การบัฟเฟอร์
- Comment=รายการจดหมายName
- ปรับปรุงหน้าต่างแบบ TCP
- การแจ้งให้ทราบเต็มจากหน้าต่าง TCP
- อัตรา การ หด ตัว สูง
เฝ้าดูระบบ
# Linux - Monitor network buffer statistics watch -n 1 'cat /proc/net/sockstat' watch -n 1 'ss -tm | grep -i mem' # Check for drops netstat -s | grep -i drop # Windows - Monitor TCP statistics netstat -e 1 # macOS - Monitor network statistics netstat -s -p tcp
Bandwidth- Dela Product (BDP) Calculation
เพื่อวิเคราะห์ขนาดบัฟเฟอร์ที่เหมาะสมที่สุดสําหรับเครือข่ายของคุณ จงคํานวณ พรุตแบนด์วิธ-ดีเลย์:
BDP = Bandwidth (bits/sec) × RTT (seconds) Example for 10 Gigabit Ethernet with 50ms RTT: BDP = 10,000,000,000 × 0.050 = 500,000,000 bits = 62.5 MB Buffer Size = BDP × 2 (for bidirectional traffic and headroom) Buffer Size = 62.5 MB × 2 = 125 MB This is why modern settings recommend 128MB maximum buffers.
คําแนะนําสําหรับการใช้งาน
| ชนิดการดาวน์โหลดงาน | ขนาดบัฟเฟอร์แนะนํา | พารามิเตอร์ของกุญแจ |
|---|---|---|
| เซิร์ฟเวอร์เว็บ ( Low Ladry) | 4-16 MB | บัฟเฟอร์ด้านล่าง, การเชื่อมต่อมากขึ้น, การตอบสนองอย่างรวดเร็ว |
| เซิร์ฟเวอร์ฐานข้อมูล | 16-32 MB | ตลับหมึกปรับเสียง, สอดคล้องกัน |
| ถ่ายโอนแฟ้ม / สํารองข้อมูล | 64-128 MB | บัฟเฟอร์สูงสุด, ลําดับความสําคัญแบบผ่านค่าสูง |
| การถ่ายวิดีโอ | 32-64 MB | บัฟเฟอร์ขนาดใหญ่ อัตราการส่งมอบที่สอดคล้องกัน |
| ศูนย์ข้อมูล HPC | 128-256 MB | บัฟเฟอร์สูงสุด ควบคุมการจราจรเฉพาะ |
| ไร้สาย / โมบาย | 2-8 MB | บัฟเฟอร์แบบอนุรักษ์, การจัดการความล่าช้าตัวแปร |
ความ ผิด พลาด ทั่ว ไป และ หลุม พราง
ข้อ ผิด พลาด ที่ ควร หลีก เลี่ยง
- การดูดข้อมูลมากเกินไป: บัฟเฟอร์ที่มีขนาดใหญ่มาก สามารถทําให้เกิดการบัฟเฟอร์บัฟฟาต ความรุนแรงเพิ่มขึ้น
- การละเลยเงื่อนไขหน่วยความจํา: แผ่นบัฟเฟอร์ขนาดใหญ่ คูณด้วยจํานวนการเชื่อมต่อ; เซิร์ฟเวอร์ที่มีการเชื่อมต่อ 10,000 ครั้ง และเบอร์บัฟเฟอร์ 128 MB ต้องการ RAM 1.25TB
- ยกเลิกการเปิดใช้งานอัตโนมัติโดยไม่มีเหตุผล: การปรับอัตโนมัติของ OS รุ่นใหม่ มักจะดีกว่าการตั้งค่าแบบคงที่
- ไม่ต้องทดสอบหลังจากมีการเปลี่ยนแปลง: การปรับปรุงประสิทธิภาพของการตรวจสอบเสมอ ด้วยการดาวน์โหลดจริง
- การลืม NIC Bluffys: ความ อ่อน เพลีย ของ ตลับ เสียง
- ตั้งค่าไม่สอดคล้องกัน: โปรแกรมลูกข่ายและเซิร์ฟเวอร์ควรจะมีการปรับแต่งบัฟเฟอร์ที่เข้ากันได้
- การ ละเลย การ ควบคุม การ จราจร: BBR และ CUBIC ดีกว่าอัลกอริทึมเก่าอย่างมาก
งาน ที่ ยุ่ง ยาก
- สร้างเส้นฐาน: วัดประสิทธิภาพปัจจุบันด้วยเครื่องมือ perf3 หรือคล้ายกัน
- แพ็กเกตจับภาพ: ใช้ Tcpdup/ Wireshark เพื่อระบุพฤติกรรมของหน้าต่าง TCP
- ตรวจสอบสถิติของระบบ: หาหยด, น้ํายาบัฟเฟอร์ อ่อนล้า, การย้ายถิ่นฐาน
- คํานวณ BDP: กําหนดขนาดบัฟเฟอร์ที่เหมาะสมตามทฤษฎี
- ปรับใช้การเปลี่ยนแปลงเพิ่ม: อย่าเปลี่ยนทุกอย่างในครั้งเดียว
- ทดสอบและตรวจสอบ: วัดประสิทธิภาพจริง
- ติดตามเวลา: เพื่อให้แน่ใจว่าการตั้งค่าจะคงเหมาะสมภายใต้โหลดที่แตกต่างกัน
ข้อ อ้างอิง และ การ อ่าน เพิ่ม เติม
- RFC 1323 - ส่วนขยาย TCP สําหรับการผลิตคุณภาพสูง (window Scaling)
- RFC 2018 - ตัวเลือกการเลือก TCP
- RFC 6928 - เพิ่มหน้าต่างเริ่มต้น TCP
- RFC 8312 – ที่ปรึกษาควบคุมการควบคุมโรค CUBIC
- BBR Congection (Google) - httpsChare Research.google/pubs/pubs45646/
- เอกสารระบบลินุกซ์ - เครือข่าย/ sisctl.txt
- Windows TCP/IP Proading TUST (Microsoft)
- ESnet NetworkTunning guard - https/s/ brierdata. net /
ไม่ซ้ํากัน
ความเหนื่อยล้าเป็นรากเหง้าของปัญหาการแสดง ที่ดูเหมือนเกี่ยวข้องกับเครือข่าย ด้วยความเข้าใจถึงวิวัฒนาการของสารบัฟเฟอร์ จาก 128KB จํากัด จนถึงความสามารถในปัจจุบัน 128 MB
การรับกุญแจ:
- ระบบสมัยใหม่ต้องการบัฟเฟอร์ที่มีขนาดใหญ่กว่ามรดก (2009)
- คํานวณ BDP สําหรับเงื่อนไขเครือข่ายเฉพาะของคุณ
- ใช้คุณสมบัติการออกเสียงอัตโนมัติของ OS เมื่อมีการใช้งาน (วินโดว์ส,ลินุกซ์สมัยใหม่)
- เฝ้าดูและทดสอบการเปลี่ยนแปลง
- พิจารณาเงื่อนไขการดาวน์โหลดที่ระบุไว้เมื่อทําการเร่งความเร็ว
จําไว้: "ปัญหางานเน็ตเวิร์ค" เปิดเผยโดยการวิเคราะห์แพ็กเกจเพื่อแสดงหน้าต่าง TCP ศูนย์ จริงๆ แล้วเป็นปัญหาเกี่ยวกับทรัพยากรของระบบโฮสต์ คุณ จะ ทํา อย่าง ไร?
ปรับปรุงล่าสุด: 2 กุมภาพันธ์ 2026
ผู้เขียน: Bud9600 ทีมเทคนิค