พาวเวอร์สเกล OneFS: การแก้ไขปัญหาด้านประสิทธิภาพ
Summary: แก้ไขปัญหาประสิทธิภาพการทํางานที่ช้าของ PowerScale OneFS ด้วยคําแนะนําที่ครอบคลุมของเราเกี่ยวกับการกําหนดค่าเครือข่าย โหลดการประมวลผล และการตรวจสอบด้วย InsightIQ เพื่อปรับปรุงประสิทธิภาพของคลัสเตอร์ ...
Symptoms
คอมพิวเตอร์ไคลเอนต์ทํางานช้า งานเฉพาะ โดยเฉพาะอย่างยิ่งงานที่ทํางานบนคลัสเตอร์ อาจล้มเหลวหรือใช้เวลานานกว่าที่คาดไว้
Cause
ปัญหาด้านประสิทธิภาพมักเกิดจากการรับส่งข้อมูลเครือข่ายปัญหาการกําหนดค่าเครือข่ายโหลดการประมวลผลไคลเอ็นต์หรือคลัสเตอร์หรือการรวมกันของปัญหาดังกล่าว บทความนี้อธิบายวิธีที่มีประสิทธิภาพหลายวิธีในการแก้ไขปัญหาประสิทธิภาพการทํางาน
Resolution
การแก้ไขปัญหาด้วยสารบัญ InsightIQ
:
- การใช้ Isilon InsightIQ
- การแก้ไขปัญหาโดยไม่ใช้ InsightIQ
- ทรูพุตเครือข่าย
- การกระจายการเชื่อมต่อไคลเอ็นต์
- สมาร์ทคอนเนค
- ปริมาณงานของคลัสเตอร์
- การประมวลผลคลัสเตอร์
- การดําเนินการที่อยู่ในคิว
- ซีพียู
การใช้ Isilon InsightIQ
การใช้ Isilon InsightIQ เป็นวิธีที่ดีที่สุดในการตรวจสอบประสิทธิภาพและแก้ไขปัญหา
ด้านประสิทธิภาพอุปกรณ์เสมือน Isilon InsightIQ ช่วยให้คุณสามารถตรวจสอบและวิเคราะห์กิจกรรมคลัสเตอร์ Isilon ผ่านมุมมองแผนภูมิที่ยืดหยุ่นและปรับแต่งได้ในแอปพลิเคชันบนเว็บ InsightIQ แผนภูมิเหล่านี้ให้ข้อมูลโดยละเอียดเกี่ยวกับฮาร์ดแวร์คลัสเตอร์ ซอฟต์แวร์ และระบบไฟล์และการทํางานของโปรโตคอล InsightIQ แปลงข้อมูลเป็นข้อมูลภาพที่เน้นค่าผิดปกติด้านประสิทธิภาพทําให้สามารถวินิจฉัยปัญหาคอขวดได้อย่างรวดเร็วหรือเพิ่มประสิทธิภาพเวิร์กโฟลว์
สําหรับรายละเอียดเกี่ยวกับการใช้ InsightIQ โปรดดูคู่มือผู้ใช้ InsightIQ
การแก้ไขปัญหาโดยไม่ใช้ InsightIQ
หากคุณไม่ได้ใช้ InsightIQ คุณสามารถเรียกใช้คําสั่งต่างๆ เพื่อตรวจสอบปัญหาด้านประสิทธิภาพได้ แก้ไขปัญหาด้านประสิทธิภาพก่อนโดยการตรวจสอบปริมาณงานของเครือข่ายและคลัสเตอร์ จากนั้นโดยการตรวจสอบการประมวลผลคลัสเตอร์ และสุดท้ายโดยการตรวจสอบอัตรา CPU ของโหนดแต่ละรายการ
ทรูพุตเครือข่าย
ใช้เครื่องมือทดสอบเครือข่าย เช่น Iperf เพื่อกําหนดความสามารถในอัตราความเร็วของคลัสเตอร์และคอมพิวเตอร์ไคลเอนต์บนเครือข่ายของคุณ
ใช้ Iperfเรียกใช้คําสั่งต่อไปนี้บนคลัสเตอร์และไคลเอ็นต์ คําสั่งเหล่านี้กําหนดขนาดหน้าต่างที่ใหญ่พอที่จะเปิดเผยว่าลิงก์เครือข่ายเป็นสาเหตุที่เป็นไปได้ของปัญหาเวลาแฝงหรือไม่
- พวง:
iperf -s -w 262144
- ลูกค้า:
iperf -c <cluster IP> -w 262144
การกระจายการเชื่อมต่อไคลเอ็นต์
ตรวจสอบจํานวนไคลเอ็นต์ NFS และ SMB ที่เชื่อมต่อกับคลัสเตอร์เพื่อให้แน่ใจว่าพวกเขาไม่ชอบโหนดเดียว
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เรียกใช้ คําสั่งต่อไปนี้เพื่อตรวจสอบไคลเอนต์ NFS:
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfs
เอาต์พุตจะแสดงจํานวนไคลเอนต์ที่เชื่อมต่อต่อโหนดและจํานวนไคลเอนต์เหล่านั้นที่ใช้งานอยู่ในแต่ละโหนด - เรียกใช้ คําสั่งต่อไปนี้เพื่อตรวจสอบไคลเอ็นต์ SMB:
isi statistics query - nodes=all --stats=node.clientstats.connected.smb, node.clientstats.active.smb1,node.clientstats.active.smb2
เอาต์พุตจะแสดงจํานวนไคลเอนต์ที่เชื่อมต่อต่อโหนดและจํานวนไคลเอนต์เหล่านั้นที่ใช้งานอยู่ในแต่ละโหนด
สมาร์ทคอนเนค
ตรวจสอบเพื่อให้แน่ใจว่าโหนดที่ SmartConnect กําลังทํางานอยู่ไม่มีภาระกับการรับส่งข้อมูลเครือข่าย
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เรียกใช้ คําสั่งต่อไปนี้:
isi_for_array -sq 'ifconfig|grep em -A3'
เอาต์พุตแสดงรายการที่อยู่ IP ทั้งหมดที่ผูกไว้กับอินเทอร์เฟซภายนอก - ตรวจสอบโหนดใดๆ ที่มีที่อยู่ IP เพิ่มเติมหนึ่งรายการมากกว่าที่เหลือ
- ตรวจสอบสถานะของโหนดที่คุณสังเกตเห็นในขั้นตอนที่ 3 โดยการเรียกใช้คําสั่งต่อไปนี้:
isi status
ตรวจสอบคอลัมน์ปริมาณงานของเอาต์พุตเพื่อกําหนดโหลดของโหนดที่สังเกตเห็นในขั้นตอนที่ 3
ปริมาณงานของคลัสเตอร์
ประเมินปริมาณการประมวลผลของคลัสเตอร์โดยทําการทดสอบการเขียนและอ่านที่วัดระยะเวลาที่ใช้ในการอ่านและเขียนไปยังไฟล์ ทําแบบทดสอบข้อเขียนอย่างน้อยหนึ่งข้อและแบบทดสอบการอ่านหนึ่งครั้งดังนี้
สอบข้อเขียน
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เปลี่ยนเป็น ไดเร็กทอรี /ifs :
cd /ifs
- จากอินเทอร์เฟซบรรทัดคําสั่ง (CLI) บนคลัสเตอร์หรือจากคอมพิวเตอร์ไคลเอนต์ UNIX หรือ Linux ให้ใช้
ddคําสั่งเพื่อเขียนไฟล์ใหม่ไปยังคลัสเตอร์ เรียกใช้ คําสั่งต่อไปนี้:dd if=/dev/zero of=1GBfile bs=1024k count=1024
คําสั่งนี้สร้างตัวอย่างไฟล์ 1GB และรายงานระยะเวลาที่ใช้ในการเขียนลงดิสก์ - จากผลลัพธ์ของคําสั่งนี้ ให้คาดการณ์จํานวนเมกะไบต์ต่อวินาทีที่สามารถเขียนลงดิสก์ในเวิร์กโฟลว์สตรีมเดียว
- หากคุณมีไคลเอนต์ MAC และต้องการทําการวิเคราะห์เพิ่มเติม
- เริ่มการตรวจสอบกิจกรรม
- เรียกใช้ คําสั่งต่อไปนี้ โดยที่
pathToFileคือเส้นทางไฟล์ของไฟล์เป้าหมาย:cat /dev/zero > /pathToFile
คําสั่งนี้ช่วยวัดปริมาณงานของการดําเนินการเขียนบนคลัสเตอร์ Isilon (แม้ว่าจะสามารถเรียกใช้ddคําสั่งจากไคลเอนต์ MAC ผลลัพธ์อาจไม่สอดคล้องกัน) - ตรวจสอบผลลัพธ์ของคําสั่งในแท็บ เครือข่าย ของตัวตรวจสอบกิจกรรม
อ่านแบบทดสอบ
เมื่อวัดปริมาณงานของการดําเนินการอ่านตรวจสอบให้แน่ใจว่าไม่ได้ทําการทดสอบการอ่านในไฟล์ที่คุณสร้างขึ้นระหว่างการทดสอบการเขียน ผลการทดสอบการอ่านของคุณจะไม่ถูกต้อง ให้ทดสอบการดําเนินการอ่านของไฟล์ที่ไม่ได้แคชแทน ค้นหาไฟล์บนคลัสเตอร์ที่มีขนาดใหญ่กว่า 1GB และอ้างอิงไฟล์นั้นในการทดสอบการอ่าน
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- จาก CLI บนคลัสเตอร์หรือจากคอมพิวเตอร์ไคลเอนต์ UNIX หรือ Linux ให้ใช้
ddคําสั่งเพื่ออ่านไฟล์บนคลัสเตอร์ เรียกใช้ คําสั่งต่อไปนี้โดยที่pathToFileคือเส้นทางไฟล์ของไฟล์เป้าหมาย:dd if=/pathToLargeFile of=/dev/null bs=1024k
คําสั่งนี้จะอ่านไฟล์เป้าหมายและรายงานระยะเวลาที่ใช้ในการอ่าน - หากคุณมีไคลเอนต์ MAC และต้องการทําการวิเคราะห์เพิ่มเติม
- เริ่มการตรวจสอบกิจกรรม
- เรียกใช้ คําสั่งต่อไปนี้โดยที่
pathToFileคือเส้นทางไฟล์ของไฟล์เป้าหมาย:time cp /pathToLargeFile > /dev/null
คําสั่งนี้ช่วยวัดปริมาณงานของการดําเนินการอ่านบนคลัสเตอร์ Isilon (แม้ว่าจะสามารถเรียกใช้ddคําสั่งจากไคลเอนต์ MAC ผลลัพธ์อาจไม่สอดคล้องกัน) - ตรวจสอบผลลัพธ์ของคําสั่งในแท็บ เครือข่าย ของตัวตรวจสอบกิจกรรม
การประมวลผลคลัสเตอร์
งาน
Restripeก่อนตรวจสอบการทํางานของอินพุต/เอาต์พุต (I/O) (IOPS) ของคลัสเตอร์:
- กําหนดว่างานใดกําลังทํางานอยู่บนคลัสเตอร์ หากงานรีสตริปต์ เช่น Auto-Balance, Collect หรือ Multi-Scan กําลังทํางานอยู่ ให้พิจารณาว่าเหตุใดงานเหล่านั้นจึงทํางานอยู่ และควรทํางานต่อไปหรือไม่
- พิจารณาประเภทของข้อมูลที่ใช้ ถ้าคอมพิวเตอร์ไคลเอนต์ทํางานกับไฟล์วิดีโอขนาดใหญ่หรือเครื่องเสมือน (VMs) งานที่ restriped ต้องใช้จํานวน IOPS ของดิสก์ที่สูงกว่าปกติ
- พิจารณาหยุดงานการรื้อถอนชั่วคราว การทําเช่นนี้สามารถปรับปรุงประสิทธิภาพได้อย่างมาก และอาจเป็นวิธีแก้ปัญหาระยะสั้นสําหรับปัญหาด้านประสิทธิภาพ
ดิสก์ I/O
การตรวจสอบดิสก์ I/O สามารถช่วยระบุได้ว่าดิสก์บางตัวถูกใช้มากเกินไป
หรือไม่เรียงตามคลัสเตอร์
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เรียกใช้ คําสั่งต่อไปนี้เพื่อตรวจสอบดิสก์ I/O:
isi statistics pstat
- จากเอาต์พุตของคําสั่งนี้ ให้แบ่งดิสก์ IOPS ด้วยจํานวนดิสก์ทั้งหมดในคลัสเตอร์ ตัวอย่างเช่น สําหรับคลัสเตอร์ 8 โหนดที่ใช้โหนด Isilon IQ 12000x ซึ่งโฮสต์ 12 ไดรฟ์ต่อโหนด คุณแบ่ง IOPS ของดิสก์ด้วย 96
สําหรับโหนด X-Series และโหนด NL-Series คุณควรคาดหวังว่าจะเห็น IOPS ของดิสก์ที่ 70 หรือน้อยกว่าสําหรับเวิร์กโฟลว์แบบสุ่ม 100% หรือ IOPS ของดิสก์ที่ 140 หรือน้อยกว่าสําหรับเวิร์กโฟลว์ตามลําดับ 100% เนื่องจากโหนด NL-Series มี RAM น้อยกว่าและความเร็ว CPU ต่ํากว่าโหนด X-Series โหนด X-Series จึงสามารถรองรับ IOPS ของดิสก์ที่สูงขึ้นได้
ตามโหนดและดิสก์
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เรียกใช้ คําสั่งต่อไปนี้เพื่อตรวจสอบ IOPS ของดิสก์ตามโหนด ซึ่งสามารถช่วยค้นหาดิสก์ที่มีการใช้งานมากเกินไป:
isi statistics query --nodes=all --stats=node.disk.xfers.rate.sum --top
- เรียกใช้คําสั่งต่อไปนี้เพื่อกําหนดวิธีการสืบค้นสถิติบนพื้นฐานต่อดิสก์:
isi statistics describe --stats=all | grep disk
การดําเนินการที่อยู่ในคิว
อีกวิธีหนึ่งในการตรวจสอบว่ามีการใช้ดิสก์มากเกินไปหรือไม่คือการกําหนดจํานวนการดําเนินการที่จัดคิวสําหรับแต่ละดิสก์ในคลัสเตอร์ สําหรับเวิร์กโฟลว์ที่ใช้ SMB สตรีมเดียว คิว 4 สามารถระบุปัญหาได้ ในขณะที่สําหรับการดําเนินการเนมสเปซ NFS พร้อมกันสูง คิวจะมากกว่า
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เรียกใช้ คําสั่งต่อไปนี้เพื่อกําหนดจํานวนการดําเนินการที่อยู่ในคิวสําหรับแต่ละดิสก์ในคลัสเตอร์:
isi_for_array -s sysctl hw.iosched | grep total_inqueue
- กําหนดเวลาแฝงที่เกิดจากการดําเนินการคิว:
sysctl -aN hw.iosched|grep bios_inqueue|xargs sysctl -D
ซีพียู
ปัญหา CPU มักถูกติดตามไปยังการดําเนินการที่ไคลเอ็นต์ดําเนินการบนคลัสเตอร์ การใช้ isi statistics คําสั่งคุณสามารถกําหนดการดําเนินการที่ดําเนินการบนคลัสเตอร์ ซึ่งจัดหมวดหมู่โดยโพรโทคอลเครือข่ายหรือคอมพิวเตอร์ไคลเอนต์
- เปิดการเชื่อมต่อ SSH บนโหนดใดก็ได้ในคลัสเตอร์และเข้าสู่ระบบโดยใช้บัญชี "root"
- เรียกใช้ คําสั่งต่อไปนี้เพื่อกําหนดว่าการดําเนินการใดกําลังดําเนินการทั่วทั้งเครือข่าย และประเมินว่าการดําเนินการใดใช้เวลามากที่สุด:
isi statistics protocol --orderby=TimeAvg --top
เอาต์พุตคําสั่งนี้ให้สถิติโดยละเอียดสําหรับโปรโตคอลเครือข่ายทั้งหมด ซึ่งจัดระเบียบตามระยะเวลาที่คลัสเตอร์ใช้ในการตอบสนองต่อไคลเอ็นต์ แม้ว่าผลลัพธ์ของคําสั่งนี้อาจไม่ได้ระบุว่าการดําเนินการใดช้าที่สุด แต่ก็สามารถชี้คุณไปในทิศทางที่ถูกต้อง - เรียกใช้ คําสั่งต่อไปนี้เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการประมวลผล CPU เช่น CPU ของโหนดใดที่มีการใช้งานมากที่สุด:
isi statistics system --top
- เรียกใช้ คําสั่งต่อไปนี้เพื่อรับสี่กระบวนการในแต่ละโหนดที่ใช้ทรัพยากร CPU มากที่สุด:
isi_for_array -sq 'top -d1|grep PID -A4'
Additional Information
ที่เกี่ยวข้องต่อไปนี้เป็นแหล่งข้อมูลที่แนะนําที่เกี่ยวข้องกับหัวข้อนี้ที่อาจเป็นที่สนใจ: