HP DL380p Gen8 (คอนโทรลเลอร์ p420i) ความแปลกประหลาดของ I / O บนพาร์ติชัน XFS


14

บนเซิร์ฟเวอร์ DL380p Gen8 ที่ใช้ XFS ด้านบนของ LVM ด้านบนของการจู่โจม 1 + 0 ที่มีดิสก์ 6 แผ่นเวิร์กโหลดที่เหมือนกันส่งผลให้ปริมาณการเขียนดิสก์บน RHEL เพิ่มขึ้นสิบเท่าเมื่อเทียบกับ RHEL 5 ทำให้แอปพลิเคชันใช้งานไม่ได้

โปรดทราบว่าฉันไม่ได้มองหาการเพิ่มประสิทธิภาพของระบบ co6 ให้มากที่สุดเท่าที่จะเป็นไปได้ แต่ในการทำความเข้าใจว่าทำไม co6 จึงมีพฤติกรรมที่แตกต่างกันอย่างมากและการแก้ปัญหานั้น

vmstat / iostat

เรามีการตั้งค่าการจำลองแบบ MySQL โดยใช้ mysql 5.5 Mysql slaves บนเซิร์ฟเวอร์ Gen8 ที่ใช้ RHEL 6 ในขณะที่ระบบปฏิบัติการทำงานได้ไม่ดีการตรวจสอบด้วย vmstat และ iostat แสดงให้เห็นว่าเซิร์ฟเวอร์เหล่านี้ทำกิจกรรมออกหน้าสิบครั้งและปริมาณการเขียนไปยังระบบย่อยของดิสก์สิบเท่า blktrace แสดงว่าการเขียนเหล่านี้ไม่ได้เริ่มต้นโดย mysql แต่โดยเคอร์เนล

Centos 5:

[dkaarsemaker@co5 ~]$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0     12 252668 102684 10816864    0    0     8   124    0    0  9  1 90  0  0
 1  0     12 251580 102692 10817116    0    0    48  2495 3619 5268  6  1 93  0  0
 3  0     12 252168 102692 10817848    0    0    32  2103 4323 5956  6  1 94  0  0
 3  0     12 252260 102700 10818672    0    0   128  5212 5365 8142 10  1 89  0  0

[dkaarsemaker@co5 ~]$ iostat 1
Linux 2.6.18-308.el5 (bc290bprdb-01.lhr4.prod.booking.com)  02/28/2013

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.74    0.00    0.81    0.25    0.00   90.21

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0      277.76       399.60      5952.53 2890574849 43058478233
cciss/c0d0p1      0.01         0.25         0.01    1802147      61862
cciss/c0d0p2      0.00         0.01         0.00     101334      32552
cciss/c0d0p3    277.75       399.34      5952.52 2888669185 43058383819
dm-0             32.50        15.00       256.41  108511602 1854809120
dm-1            270.24       322.97      5693.34 2336270565 41183532042

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.49    0.00    0.79    0.08    0.00   91.64

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0      300.00        32.00      4026.00         32       4026
cciss/c0d0p1      0.00         0.00         0.00          0          0
cciss/c0d0p2      0.00         0.00         0.00          0          0
cciss/c0d0p3    300.00        32.00      4026.00         32       4026
dm-0              0.00         0.00         0.00          0          0
dm-1            300.00        32.00      4026.00         32       4026

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.25    0.00    0.46    0.21    0.00   95.09

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0      507.00       160.00     10370.00        160      10370
cciss/c0d0p1      0.00         0.00         0.00          0          0
cciss/c0d0p2      0.00         0.00         0.00          0          0
cciss/c0d0p3    507.00       160.00     10370.00        160      10370
dm-0              0.00         0.00         0.00          0          0
dm-1            507.00       160.00     10370.00        160      10370

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.33    0.00    0.50    0.08    0.00   94.09

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0      318.00        64.00      4559.00         64       4559
cciss/c0d0p1      0.00         0.00         0.00          0          0
cciss/c0d0p2      0.00         0.00         0.00          0          0
cciss/c0d0p3    319.00        64.00      4561.00         64       4561
dm-0              0.00         0.00         0.00          0          0
dm-1            319.00        64.00      4561.00         64       4561

และใน Centos 6 การเพจที่เพิ่มขึ้นสิบเท่าและการเขียนดิสก์:

[root@co6 ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 361044  52340 81965728    0    0    19  1804   36  110  1  1 98  0  0  
 0  0      0 358996  52340 81965808    0    0   272 57584 1211 3619  0  0 99  0  0  
 2  0      0 356176  52348 81966800    0    0   240 34128 2121 14017  1  0 98  0  0 
 0  1      0 351844  52364 81968848    0    0  1616 29128 3648 3985  1  1 97  1  0  
 0  0      0 353000  52364 81969296    0    0   480 44872 1441 3480  1  0 99  0  0  

[root@co6 ~]# iostat 1
Linux 2.6.32-279.22.1.el6.x86_64 (bc291bprdb-01.lhr4.prod.booking.com)  02/28/2013  _x86_64_    (32 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.08    0.00    0.67    0.27    0.00   97.98

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             373.48      1203.02    115203.05   11343270 1086250748
dm-0             63.63        74.92       493.63     706418    4654464
dm-1            356.48      1126.72    114709.47   10623848 1081596740

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    0.19    0.06    0.00   99.50

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             330.00        80.00     77976.00         80      77976
dm-0              0.00         0.00         0.00          0          0
dm-1            328.00        64.00     77456.00         64      77456

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.38    0.00    0.19    0.63    0.00   98.81

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             570.00      1664.00    128120.00       1664     128120
dm-0              0.00         0.00         0.00          0          0
dm-1            570.00      1664.00    128120.00       1664     128120

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.66    0.00    0.47    0.03    0.00   98.84

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             317.00       448.00     73048.00        448      73048
dm-0             34.00         0.00       272.00          0        272
dm-1            309.00       448.00     72776.00        448      72776

แคบลง

เซิร์ฟเวอร์ Gen 8 ที่ใช้ RHEL 5 และเซิร์ฟเวอร์ Gen 7 ที่ใช้ RHEL 5 หรือ 6 ไม่แสดงปัญหานี้ นอกจากนี้ RHEL 6 ที่มี ext3 เป็นระบบไฟล์แทนค่า XFS เริ่มต้นของเราจะไม่แสดงปัญหา ปัญหาดูเหมือนว่าจะอยู่ระหว่าง XFS, ฮาร์ดแวร์ gen8 และ centos 6 RHEL 6 ยังแสดงปัญหา

แก้ไข 29/04: เราเพิ่ม qlogic HBA ของเครื่อง G8 การใช้ XFS บนที่เก็บข้อมูลแชนเนลไฟเบอร์ไม่แสดงปัญหา ดังนั้นมันจึงเป็นการโต้ตอบระหว่าง xfs / hpsa / p420i แน่นอน

XFS

XFS ที่ใหม่กว่าใน rhel 8 ดูเหมือนว่าจะสามารถตรวจจับความกว้างของแถบพื้นฐาน แต่เฉพาะในคอนโทรลเลอร์ p420i ที่ใช้ไดรเวอร์ hpsa ไม่ใช่คอนโทรลเลอร์ p410i ที่ใช้ cciss

เอาต์พุต xfs_info:

[root@co6 ~]# xfs_info /mysql/bp/
meta-data=/dev/mapper/sysvm-mysqlVol isize=256    agcount=16, agsize=4915136 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=78642176, imaxpct=25
         =                       sunit=64     swidth=192 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=38400, version=2
         =                       sectsz=512   sunit=64 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

sunit / swidth เป็นทั้ง 0 ในการตั้งค่าทั้งหมดที่ทำเครื่องหมายว่าตกลงด้านบน ดูเหมือนว่าเราจะไม่สามารถเปลี่ยนแปลงสิ่งนี้ไม่ว่าจะเป็น mkfs หรือด้วยตัวเลือก noalign mount เราไม่รู้ด้วยซ้ำว่านี่เป็นสาเหตุหรือไม่

Hugepages

คนอื่นที่มีปัญหา XFS ใน rhel 6 กล่าวว่าการปิดใช้งาน hugepages และโดยเฉพาะอย่างยิ่ง hugepages ที่โปร่งใสจะเป็นประโยชน์ เราปิดการใช้งานทั้งสองปัญหาไม่ได้หายไป

เราได้ลองและสังเกตหลายสิ่งแล้วไม่มีสิ่งใดช่วย:

  • การใช้ numactl เพื่อควบคุมการจัดสรรหน่วยความจำ เราสังเกตเห็นว่า g7 และ g8 มีเลย์เอาต์ numa ที่แตกต่างกัน
  • เมล็ดใหม่กว่า (ใหม่เท่า 3.6) ดูเหมือนจะไม่สามารถแก้ปัญหานี้ได้ ไม่ใช้ fedora 17
  • iostat ไม่ได้รายงานการเพิ่มขึ้นของการเขียนเป็นสิบเท่าในจำนวนไบต์ที่เขียนเท่านั้น
  • การใช้ตัวกำหนดเวลา I / O ที่แตกต่างกันไม่มีผล
  • การติดตั้งระบบไฟล์ noatime / nobarrier / nopdiratime ที่เกี่ยวข้องไม่ได้ช่วยอะไร
  • การเปลี่ยน / proc / sys / vm / dirty_ratio ไม่มีผลใด ๆ
  • สิ่งนี้เกิดขึ้นทั้งกับระบบที่ใช้ซีพียู 2640 และ 2670
  • hpsa-3.2.0 ไม่ได้แก้ปัญหา

แสดง XFS mkfs.xfsและmountตัวเลือกของคุณ EL6 คือการจัดตำแหน่งพาร์ติชันที่ทราบ HPSA จะใช้งานสำหรับตัวควบคุม Smart Array ทั้งสองชนิดภายใต้ EL6 แต่ EL5 จะใช้ CCISS
ewwhite

ตัวเลือก mkfs: ไม่มี บรรทัดเมานต์: / dev / mapper / sysvm-mysqlVol บน / mysql / bp ประเภท xfs (rw, allocsize = 1m) จะเพิ่มเอาต์พุต xfs_info ทั้งหมดลงในโพสต์
Dennis Kaarsemaker

แล้วทางออกคืออะไร?
ewwhite

คำตอบ:


7

XFS และ EL6 ตกอยู่ในสภาพที่น่าเกลียด ... ฉันทิ้ง XFS บนระบบ EL6 ในขณะนี้เนื่องจากมีคุณสมบัติอัปสตรีม / การเปลี่ยนแปลงหลายอย่างที่ลื่นไถลไปในเคอร์เนล Red Hat ...

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

ตั้งแต่พฤศจิกายน 2012 รุ่น XFS จัดส่งเป็นเมล็ดใหม่กว่า2.6.32-279.11.1.el6มีภาระที่น่ารำคาญและปัญหาประสิทธิภาพอันเนื่องมาจาก Red Hat Bugzilla 860787860787 ตั้งแต่นั้นมาฉันมีประสิทธิภาพที่ไม่แน่นอนและการรันคิวที่สูงกว่าค่าเฉลี่ย

สำหรับระบบใหม่ฉันใช้ ZFS หรือเพียงแค่ ext4 สำหรับระบบเก่าฉันจะแช่แข็งพวกเขาที่2.6.32-279.11.1.el6สำหรับระบบเก่าผมแช่แข็งพวกเขาที่

ลองย้อนกลับไปใช้เวอร์ชันนั้นด้วย:

yum install kernel-2.6.32-279.11.1.el6.x86_64

นอกเหนือจากที่กล่าวมาข้างต้นเนื่องจากชนิดของตัวควบคุม RAID ที่คุณใช้อยู่การเพิ่มประสิทธิภาพโดยทั่วไปอยู่ในลำดับ:

ติด noatimefilesystems คุณควรใช้เฟรมเวิร์ก Tunedด้วย:

tuned-adm profile enterprise-storage

เพื่อตั้งค่า readahead, nobarrier และ I / O เป็นพื้นฐานที่ดี


แก้ไข:

มีคำแนะนำมากมายรอบการเพิ่มประสิทธิภาพระบบไฟล์ XFS ฉันใช้ระบบไฟล์เฉพาะสำหรับทศวรรษที่ผ่านมาและต้องปรับพารามิเตอร์เป็นครั้งคราวตามการเปลี่ยนแปลงที่เกิดขึ้นกับระบบปฏิบัติการ ฉันไม่เคยพบว่าประสิทธิภาพลดลงอย่างมากเช่นคุณ แต่ฉันไม่ได้ใช้ LVM

ฉันคิดว่ามันไม่มีเหตุผลที่จะคาดหวังว่า EL5 จะทำหน้าที่เช่นเดียวกับ EL6เนื่องจากการสร้างเคอร์เนลที่แตกต่างกันการคอมไพล์ในค่าเริ่มต้นตัวกำหนดตารางเวลาแพ็คเกจ ฯลฯ

สิ่งที่จะผมทำที่จุดนี้ ??

  • ฉันจะตรวจสอบพารามิเตอร์ mkfs.xfs และวิธีที่คุณสร้างระบบ คุณใช้การแบ่งพาร์ติชัน XFS ระหว่างการติดตั้งหรือสร้างพาร์ติชั่นหลังจากข้อเท็จจริงหรือไม่? ฉันสร้างระบบไฟล์ XFS หลังจากการติดตั้งระบบปฏิบัติการหลักเพราะฉันมีความยืดหยุ่นมากขึ้นในพารามิเตอร์ที่กำหนด

  • พารามิเตอร์การสร้าง mkfs.xfs ของฉันนั้นง่าย: mkfs.xfs -f -d agcount=32 -l size=128m,version=2 /dev/sdb1ตัวอย่างเช่น

  • ตัวเลือกการเมานต์ของฉันคือ: noatime,logbufs=8,logbsize=256k,nobarrierฉันจะอนุญาตการจัดสรรล่วงหน้าแบบไดนามิกของ XFSเพื่อให้ทำงานได้เองและไม่ จำกัด เหมือนที่คุณมีที่นี่ ประสิทธิภาพของฉันดีขึ้นด้วย

  • ดังนั้นผมจึงไม่ได้ใช้ LVM โดยเฉพาะอย่างยิ่งที่ด้านบนของฮาร์ดแวร์ RAID ... โดยเฉพาะอย่างยิ่งในตัวควบคุม HP Smart Array ที่มีฟังก์ชั่นคล้าย LVM บางอย่างอยู่ในอุปกรณ์ อย่างไรก็ตามการใช้ LVM คุณไม่มีสิทธิ์เข้าถึงfdiskสำหรับการสร้างพาร์ติชันดิบ สิ่งหนึ่งที่เปลี่ยนจาก EL5 เป็น EL6 คือการจัดแนวพาร์ติชันในตัวติดตั้งและเปลี่ยนเป็น fdisk เพื่อตั้งค่าเซกเตอร์เริ่มต้นบนขอบเขตทรงกระบอก

  • ตรวจสอบให้แน่ใจว่าคุณกำลังใช้งานตัวควบคุมและไดรฟ์ HP Smart Array ที่ระดับการแก้ไขปัจจุบัน เมื่อถึงตอนนั้นการอัพเดตเซิร์ฟเวอร์ทั้งหมดเป็นHP Service Pack สำหรับการแก้ไขเฟิร์มแวร์ ProLiantปัจจุบัน นี่เป็น DVD ที่สามารถบู๊ตได้ซึ่งจะทำการอัพเกรดส่วนประกอบที่ตรวจพบทั้งหมดในระบบ

  • ฉันจะตรวจสอบการตั้งค่าคอนโทรลเลอร์ของ RAID Pastebin hpacucli ctrl all show config detailการส่งออกของ นี่คือของฉัน คุณต้องการอัตราส่วนแคชที่มีอคติต่อการเขียนและการอ่าน 75:25 เป็นบรรทัดฐาน ขนาดของแถบเริ่มต้นที่256K น่าจะใช้ได้สำหรับแอปพลิเคชันนี้

  • ฉันอาจลองโดยไม่ใช้ LVM

  • sysctl.confพารามิเตอร์ของคุณคืออะไร


น่าเสียดายที่เคอร์เนลเก่าแสดงพฤติกรรมแบบเดียวกัน
Dennis Kaarsemaker

ทดสอบโดยไม่ใช้ LVM
ewwhite

1

เรามีปัญหาที่คล้ายกันและพบว่าเป็นเพราะการเปลี่ยนแปลงรุ่นบันทึก XFS บันทึกเวอร์ชัน 2 เคารพชุดความกว้างของแถบที่ใช้กับ mkfs.xfs หากคุณทำ fsync จำนวนมากการ์ด RAID ของคุณจะไม่สามารถปลอมบันทึกเหล่านั้นได้อีกต่อไป คุณสามารถทดสอบโดยฟอร์แมตพาร์ติชันโดยไม่มีการตั้งค่าความกว้าง (ไม่ได้สร้างความแตกต่างกับ RAID 1 + 0) คุณสามารถตรวจสอบว่ามี blktrace / seekwatcher เพื่อดูว่าเกี่ยวข้องกับการปรับปรุงบันทึกจำนวนมาก


mkfs.xfsสตริงคำสั่งของคุณคืออะไร?
ewwhite

ฉันตั้งใจจะให้คำตอบด้วยตัวเองในที่สุดเราก็พบมัน คำตอบของคุณเป็นส่วนหนึ่งของการแก้ปัญหา แต่ไม่ใช่ทั้งหมด
Dennis Kaarsemaker

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