วิธีแก้ปัญหาเวลาในการตอบสนองระหว่าง 2 linux hosts


16

เวลาแฝงของโฮสต์ 2 linux นั้นประมาณ. 23ms พวกเขาเชื่อมต่อกันด้วยสวิตช์เดียว Ping & Wireshark ยืนยันหมายเลขเวลาตอบสนอง แต่ฉันไม่มีทัศนวิสัยใด ๆ เกี่ยวกับสิ่งที่ทำให้เกิดความล่าช้านี้ ฉันจะทราบได้อย่างไรว่าเวลาแฝงเกิดจาก NIC บนโฮสต์ A หรือ B หรือสวิตช์หรือสายเคเบิล

UPDATE: .23 ms latency ไม่ดีสำหรับแอปพลิเคชั่นที่มีอยู่ของฉันซึ่งส่งข้อความที่ความถี่สูงมากและฉันพยายามดูว่ามันสามารถลดลงเป็น. 1ms


2
ทำไมคุณคิดว่า. 23ms นั้นมีความหน่วงแฝงอยู่? นั่นเป็นความล่าช้าที่ยอดเยี่ยม
SpacemanSpiff

6
เชื่อมต่อโดยตรงด้วยสายเคเบิลแบบไขว้ หากคุณมีเวลาแฝงเท่ากันสาเหตุคือหนึ่งในโฮสต์ หากคุณไม่มีเวลาแฝงเท่ากันสาเหตุคือสวิตช์หรือสายเคเบิล
joeqwerty

1
ตกลงปัญหาคืออะไร เวลาแฝงอยู่ที่ 0.23 มิลลิวินาทีน้อยกว่าที่ฉันได้รับด้วยสองเครื่องที่อยู่ติดกัน
Michael Hampton

@joeqwerty หากทั้งสองระบบเชื่อมต่อผ่านสายเคเบิลแบบไขว้พวกเขาจะค้นหาซึ่งกันและกันได้อย่างไร? ARP ยังใช้งานได้หรือไม่ TCP ยังทำงานได้หรือไม่
Jimm

1
พวกมันจะทำงานเหมือนกันถ้าพวกเขาทั้งคู่เชื่อมต่อกับสวิตช์ตัวเดียวกัน สายเคเบิลเป็นเพียงสื่อกลางทางกายภาพที่พวกเขาจะสื่อสาร โมเดล OSI ทั้งหมด 7 เลเยอร์ (หรือ 4 เลเยอร์ของโมเดล DARPA หากคุณต้องการ) จะทำงานได้อย่างที่พวกเขาทำในตอนนี้
joeqwerty

คำตอบ:


15

โดยทั่วไปคุณสามารถใช้สวิตช์ขั้นสูงบางตัวไปยังยูทิลิตี iperfเพื่อดูประสิทธิภาพเครือข่ายระหว่างระบบโดยเฉพาะเวลาแฝงและความกระวนกระวายใจ ...

นี่เป็นสตรีมข้อความที่ใช้ UDP หรือ TCP หรือไม่

ฉันแสดงความคิดเห็นข้างต้นว่าต้องการข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าของคุณ หากนี่เป็นแอปพลิเคชั่นการส่งข้อความที่มีความหน่วงต่ำมีทั้งโลกแห่งการปรับแต่งและเทคนิคการปรับแต่งที่ครอบคลุมฮาร์ดแวร์ไดรเวอร์และการปรับแต่งระบบปฏิบัติการ แต่จริงๆแล้วเราต้องการข้อมูลเพิ่มเติม

แก้ไข:

ตกลงดังนั้นนี่คือการส่งข้อความ TCP คุณแก้ไข/etc/sysctl.confพารามิเตอร์ใด ๆ บัฟเฟอร์ส่ง / รับของคุณมีลักษณะอย่างไร การใช้เคอร์เนลเรียลไทม์เพียงอย่างเดียวจะไม่ทำอะไรมาก แต่ถ้าคุณย้ายไปยังจุดที่คุณเชื่อมโยงการขัดจังหวะกับ CPU การเปลี่ยนลำดับความสำคัญแบบเรียลไทม์ของแอพส่งข้อความ ( chrt) และอาจแก้ไขtuned-admโปรไฟล์ของระบบอาจช่วย ...

เสียงนี้จะมีระบบ EL6 ทั่วไปจึงเป็นวิธีที่ง่ายต่อการตั้งพื้นฐานการปรับแต่งประสิทธิภาพเกี่ยวข้องกับการเปลี่ยนแปลงรายละเอียดผลการดำเนินงานของระบบไปยังอีกที่หนึ่งที่มีอยู่ภายในกรอบการปรับ จากนั้นสร้างจากที่นั่น

ในกรณีของคุณ:

yum install tuned tuned-utils
tuned-adm profile latency-performance

เมทริกซ์ด่วนแสดงความแตกต่าง:

คุณบอกเราเกี่ยวกับฮาร์ดแวร์ได้ไหม ชนิดของ CPU, NIC, หน่วยความจำ?

ดังนั้นอาจเป็นเรื่องที่น่าสนใจในการทดสอบลิงก์ของคุณ ... ลองทดสอบ iperf นี้ ...

ในระบบใดระบบหนึ่งให้เริ่มฟัง iperf UDP อีกด้านหนึ่งให้เปิดการเชื่อมต่อกับสายแรก ... การทดสอบคุณภาพสายด่วน

# Server2
[root@server2 ~]# iperf -su   

# Server1
[root@server1 ~]# iperf -t 60 -u -c server2

ในกรณีของฉันเวลาที่กระวนกระวายใจและ ping ต่ำ:

------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  224 KByte (default)
------------------------------------------------------------
[  3] local 192.168.15.3 port 5001 connected with 172.16.2.152 port 36312
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-20.0 sec  2.50 MBytes  1.05 Mbits/sec   0.012 ms    0/ 1785 (0%)

PING server1 (172.16.2.152) 56(84) bytes of data.
64 bytes from server1 (172.16.2.152): icmp_seq=1 ttl=63 time=0.158 ms
64 bytes from server1 (172.16.2.152): icmp_seq=2 ttl=63 time=0.144 ms

ฉันจะตรวจสอบข้อผิดพลาดของฮาร์ดแวร์และอินเทอร์เฟซ หากคุณต้องการให้กำจัดสวิตช์ระหว่างระบบและดูว่าการเชื่อมต่อโดยตรงมีลักษณะอย่างไร คุณไม่ต้องการกระวนกระวายใจสูง (ความแปรปรวน) ดังนั้นตรวจสอบว่า

แต่ตามจริงแล้วถึงแม้เวลา ping ที่คุณใช้ในการตั้งค่าปัจจุบันของคุณจะไม่เพียงพอที่จะฆ่าแอปพลิเคชันของคุณ ฉันจะไปตามเส้นทางของการปรับบัฟเฟอร์การส่ง / รับของคุณ ดู: net.core.rmem_max,net.core.wmem_maxและค่าเริ่มต้นของพวกเขา ...

สิ่งต่อไปนี้ใน/etc/sysctl.conf(โปรดปรับแต่งเพื่อลิ้มรส):

net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

มันเป็นแอพพลิเคชั่นส่งข้อความที่มีความละเอียดอ่อน ระบบปฏิบัติการทั่วไปจะเป็น kernel-2.6.32-279.11.1.el6.x86_64 แม้ว่าฉันจะโหลดโฮสต์ด้วยเคอร์เนล 3.2.23-rt37.56.el6rt.x86_64 เพื่อดูว่ามันจะสร้างความแตกต่างหรือไม่ แต่มันก็ค่อนข้างเหมือนกัน ขนาดข้อความแตกต่างกันระหว่าง 1KB- 3KB การสื่อสารทั้งหมดเกิดขึ้นผ่าน TCP
Jimm

ระบบปฏิบัติการ Red Hat MRG หรือไม่
ewwhite

ตอนนี้ Redhat 6.3 ธรรมดา แต่ MRG ก็เป็นไปได้เช่นกัน อย่างที่ฉันได้กล่าวไปแล้วฉันลองทั้งสองอย่าง แต่ความหน่วงแฝงก็เหมือนกัน ฉันควรคำนึงถึงความสามารถในการปรับแต่งแบบใด
Jimm

ฉันต้องการทราบฮาร์ดแวร์และการตั้งค่า NIC สวิตช์รุ่นช่วย สำหรับการปรับค่าได้พื้นที่ที่ชัดเจนในการดู 6.3 คือtuned-admโปรไฟล์ของคุณ
ewwhite

ตัวควบคุม Dual Ethernet: Emulex Corporation OneConnect 10Gb NIC (rev 02) และ 16 คอร์โปรเซสเซอร์ AMD ตระกูล 10h แต่ละ 2400 MHz
Jimm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.