ระบบลีนุกซ์ส่วนใหญ่ที่ฉันจัดการจะมีคอนโทรลเลอร์ RAID สำหรับฮาร์ดแวร์ (ส่วนใหญ่เป็นHP Smart Array ) พวกเขากำลังทำงาน RHEL หรือ CentOS ทั้งหมด
ฉันกำลังมองหาที่ปรับได้ในโลกแห่งความจริงเพื่อช่วยเพิ่มประสิทธิภาพการตั้งค่าที่รวมตัวควบคุม RAID ของฮาร์ดแวร์ด้วยดิสก์ SAS (สมาร์ทอาเรย์, Perc, LSI, ฯลฯ ) และแคชสำรองแบตเตอรี่หรือแฟลชสำรอง สมมติว่า RAID 1 + 0 และแกนหมุนหลายอัน (4+ ดิสก์)
ฉันใช้เวลาปรับแต่งการตั้งค่าเครือข่ายลีนุกซ์เป็นเวลานานสำหรับแอพพลิเคชั่นการซื้อขายทางการเงินที่มีความหน่วงแฝงและต่ำ แต่ตัวเลือกเหล่านั้นมีเอกสารครบถ้วน (เปลี่ยนบัฟเฟอร์การส่ง / รับการแก้ไขการตั้งค่าหน้าต่าง TCP ฯลฯ ) วิศวกรกำลังทำอะไรในด้านการจัดเก็บ?
ในอดีตฉันได้ทำการเปลี่ยนแปลงการจัดตารางเวลา I / Oเมื่อเร็ว ๆ นี้การเลือกdeadline
และตัวตั้งnoop
เวลาเพื่อปรับปรุงประสิทธิภาพภายในแอปพลิเคชันของฉัน เมื่อเวอร์ชัน RHEL ดำเนินไปฉันได้สังเกตเห็นว่าค่าเริ่มต้นที่คอมไพล์แล้วสำหรับอุปกรณ์บล็อก SCSI และ CCISS ก็เปลี่ยนไปเช่นกัน สิ่งนี้มีผลกระทบต่อการตั้งค่าระบบย่อยหน่วยเก็บข้อมูลที่แนะนำเมื่อเวลาผ่านไป อย่างไรก็ตามมันไม่นานมานี้ตั้งแต่ฉันเห็นคำแนะนำที่ชัดเจน และฉันรู้ว่าค่าเริ่มต้นของระบบปฏิบัติการนั้นไม่ดีที่สุด ตัวอย่างเช่นดูเหมือนว่าบัฟเฟอร์การอ่านล่วงหน้าเริ่มต้นที่ 128kb นั้นมีขนาดเล็กมากสำหรับการปรับใช้กับฮาร์ดแวร์ระดับเซิร์ฟเวอร์
บทความต่อไปนี้สำรวจผลกระทบด้านประสิทธิภาพของการเปลี่ยนแคชแบบอ่านล่วงหน้าและค่าnr_requestsในคิวบล็อก
http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux- เหตุผลที่ต้องปรับแต่ง - สำคัญมาก ๆ
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html
ตัวอย่างเช่นสิ่งเหล่านี้เป็นการเปลี่ยนแปลงที่แนะนำสำหรับตัวควบคุม HP Smart Array RAID:
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
มีอะไรอีกบ้างที่สามารถปรับได้อย่างน่าเชื่อถือเพื่อปรับปรุงประสิทธิภาพการจัดเก็บ?
ฉันกำลังมองหาตัวเลือก sysctl และ sysfs โดยเฉพาะในสถานการณ์การผลิต