ฉันควรคาดหวังปริมาณงานใดกับ MPIO


12

Dell PowerEdge 2950 พร้อมสอง 1 Gbps NIC จะไปที่พอร์ต 1 Gbps สองพอร์ตบนสวิตช์ซึ่งจะไปยัง NetApp ด้วย NIC สี่ 1 Gbps ที่มีอยู่เป็นหนึ่งอินเทอร์เฟซเสมือน 24 ไดรฟ์, 7200k SATA, NetApp RAID-DP ฉันได้แมป NIC โฮสต์แต่ละรายการกับ NetApp โดยใช้ MPIO ใน Microsoft iSCSI initiator การทดสอบกับ SQLIO ผลงานการเขียนของฉันนั้นสมเหตุสมผลประมาณ 200 MBs แต่การอ่านของฉันใกล้ถึง 100 MB

การอ่านของฉันไม่ควรอยู่ใกล้กับ 200 MB เหมือนกับการเขียนของฉันหรือไม่ นี่เป็นปัญหาการกำหนดค่าหรือมีปัญหาการเก็บข้อมูลพื้นฐานที่ฉันไม่เข้าใจหรือไม่?

ป้อนคำอธิบายรูปภาพที่นี่

อัปเดต: นี่คือ IOPS สำหรับเวิร์กโหลดแบบสุ่ม แม้ว่าผู้อ่านจะอ่านแล้วฉันไม่แน่ใจว่าจะเขียนอะไรได้บ้างสำหรับ 20,000 ครั้ง แคช SAN คือ 3.2 GB การทดสอบ SQLIO เทียบกับไฟล์ 25 GB

ป้อนคำอธิบายรูปภาพที่นี่


3
แคชของคุณในอุปกรณ์ NetApp คืออะไร? คุณมีผู้ดูแลระบบ SAN ที่สามารถดึงการวัดมาให้คุณได้หรือไม่? เรามี NetApp และสามารถระบุปัญหาสองสามอย่างด้วยการรวมกันของรายงานและบันทึกการเตือน ในที่สุดสถานการณ์ของเราคือบัตรไฟเบอร์ที่ไม่ดี แต่การสนับสนุนเน็ตแอพมีประโยชน์มากในการช่วยให้เราทราบสาเหตุ
swasheck

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

2
@mrdenny ความคิดเรื่องนี้ "99% ของ IO ใน 64k บล็อก" เกิดขึ้นจากอะไร บ๊อบ Dorr แสดงให้เห็นเป็นอย่างอื่นเช่นเดียวกับเวสบราวน์ แม้ว่าเราจะไม่สนใจบทความที่ครอบคลุมทั้งสองนี้ แต่สามัญสำนึกก็บอกว่าคุณจะเห็น 8K IO บนแพลตฟอร์มที่ใช้ขนาดหน้า 8K
Mark Storey-Smith

2
@mrdenny Mine ต้องพังแล้วฉันควรโทรหาฝ่ายสนับสนุนไหม? ฉันนั่งที่นี่เพื่อดูไฟล์ข้อมูลกิจกรรม IO ด้วยการตรวจสอบกระบวนการและในขณะที่มีการอ่าน 64K ที่คาดไว้มากมายมีอีก 8K อ่านอีกมากมายและแน่นอนเขียน 8k มากมาย กิจกรรมการบันทึกเป็นไปตามที่คาดไว้ 512 ไบต์ทวีคูณตั้งแต่ 512 ไบต์เดียวจนถึง 60k
Mark Storey-Smith

2
@ MarkStorey-Smith ในประสบการณ์ของฉันอ่านใน 8k เกิดขึ้นมักจะมีความสัมพันธ์กับการกระจายตัวของ นอกจากนี้ยังสามารถบ่งชี้ว่าหน่วยความจำล้มเหลวอายุการใช้งานหน้ากระดาษที่ต่ำเนื่องจากการสแกนหน้า evicting (เช่นขอบเขตส่วนใหญ่ยังคงอยู่ในหน่วยความจำ) ระบบที่ปรับมาอย่างดีควรแสดงการอ่าน 64k แน่นอนว่าการเขียนขึ้นอยู่กับสิ่งที่สกปรกจริงๆ
Remus Rusanu

คำตอบ:


7

จริง ๆ แล้วการเขียนดิสก์จะไปที่หน่วยความจำ (NVRAM) บนตัวฟิลเลอร์เพื่อที่จะถูกฟลัชไปที่ดิสก์ในภายหลัง - บนตัวฟิลเตอร์แบบไม่ใช้งานสิ่งเหล่านี้จะรวดเร็วอย่างเหลือเชื่อ .

ในทางกลับกันการอ่านต้องมาจากดิสก์เว้นแต่ว่าพวกเขาจะอยู่ในแคชการอ่านของฟิลเลอร์ (ซึ่งต่างจากการเขียนอยู่ในหน่วยความจำที่ระเหยได้)

เป็นการยากที่จะตรึงผู้จำหน่ายที่เก็บข้อมูลไว้บน iops สำหรับดิสก์ที่กำลังหมุน แต่สำหรับไดรฟ์ 7200RPM นั้น 80-120 iops นั้นน่าเชื่อถือ เมื่อพิจารณาว่าคุณอาจสูญเสียดิสก์สองตัวไปยัง RAID-DP และ / หรืออะไหล่ของ NetApp นั้น 2,200 iops นั้นใกล้เคียงกับที่คุณคาดหวังจาก 22 ดิสก์ที่มีประสิทธิภาพประมาณ 100 iops

สิ่งนี้อาจไม่อธิบายความเร็วในการอ่านของคุณ (ดิสก์ของคุณอาจไม่ทำงานเต็ม 2,200 iops เมื่อคุณอ่านตามลำดับ) แต่อย่างน้อยก็อาจช่วยอธิบายประสิทธิภาพการเขียนของคุณได้


ขอบคุณนาธาน ฉันควรจะคาดหวังปริมาณงานเป็นสองเท่าด้วย NIC สองตัวและ MPIO หรือไม่
Henry Lee

1
คุณสามารถตรวจสอบการใช้งานตัวกรองของคุณในขณะที่คุณทำการทดสอบการอ่านตามลำดับหรือไม่? หากถึง 100% คอขวดของคุณสำหรับสิ่งเหล่านั้นน่าจะอยู่ที่ filer (เนื่องจากการกำหนดค่าหรือข้อ จำกัด ของ iops ในแต่ละดิสก์) และการเชื่อมต่อ MPIO / MPIO / MPIO พิเศษจะไม่เพิ่มอะไรเลย ปริมาณงานการเขียนของคุณอาจเพิ่มขึ้นอีก
Nathan Jolly

5

สำหรับลูกหลานหลังจากการลองผิดลองถูกเราพบว่าจะได้ปริมาณงานที่คาดหวังได้อย่างไร

ดังกล่าวข้างต้นเน็ตแอพมีอินเทอร์เฟซเสมือนหนึ่งที่ได้รับการสนับสนุนโดย NIC จริงสี่ตัว โฮสต์มี NIC สองตัวและฉันได้กำหนดค่า MPIO ผ่าน MS iSCSI Initiator เพื่อให้มีเส้นทางจากแต่ละ NIC ไปยังอินเทอร์เฟซเสมือนเดียว ผลลัพธ์คือปริมาณงานด้านบน - เขียนได้ใกล้เคียงกับ 200 MB หรือความเร็วของ NIC สองตัว แต่การอ่านนั้นครึ่งหนึ่งหรือความเร็วของ NIC หนึ่งตัว

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

การซื้อกลับบ้านของฉันคือเราเพียงแค่ต้องการให้ SAN นำเสนอมากกว่าหนึ่งอินเทอร์เฟซดังนั้น Initiator จึงเห็นหลายเส้นทางอย่างแท้จริง นี่คือปริมาณงานของเราในขณะนี้:

ป้อนคำอธิบายรูปภาพที่นี่


ทำไมการเขียนขนาดเล็กลงจึงช้าลงในตอนนี้?
แจ็คบอกว่าลอง topanswers.xyz

ไม่แน่ใจว่าเรายังไม่สามารถเข้าใจได้ ฉันจะโพสต์กลับถ้าฉันคิดออก
Henry Lee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.