HP DL380p Gen8 (pengontrol p420i) Keanehan I / O pada partisi XFS

14

Pada server DL380p gen8 menggunakan XFS di atas LVM di atas serangan 1 + 0 dengan 6 disk, beban kerja yang identik menghasilkan peningkatan sepuluh kali lipat pada disk yang menulis di RHEL 6 dibandingkan dengan RHEL 5, membuat aplikasi tidak dapat digunakan.

Perhatikan bahwa saya tidak melihat mengoptimalkan sistem co6 sebanyak mungkin, tetapi memahami mengapa co6 berperilaku sangat berbeda, dan menyelesaikannya.

vmstat / iostat

Kami memiliki pengaturan replikasi MySQL, menggunakan mysql 5.5. Budak Mysql di server gen8 menggunakan RHEL 6 karena OS berkinerja buruk, inspeksi dengan vmstat dan iostat menunjukkan bahwa server ini melakukan sepuluh kali aktivitas keluar halaman dan sepuluh kali jumlah penulisan ke subsistem disk. blktrace menunjukkan bahwa penulisan ini tidak diawali oleh mysql, tetapi oleh kernel.

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

Dan pada Centos 6 peningkatan sepuluh kali lipat dalam paged out dan disk menulis:

[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

Mempersempit

Server Gen 8 menggunakan RHEL 5, dan server gen 7 menggunakan RHEL 5 atau 6 tidak menunjukkan masalah ini. Lebih jauh lagi, RHEL 6 dengan ext3 sebagai filesystem alih-alih xfs default kami tidak menunjukkan masalah. Masalahnya sepertinya berada di suatu tempat antara XFS, gen8 hardware dan centos 6. RHEL 6 juga menunjukkan masalahnya.

Sunting 29/04: kami menambahkan qlogic HBA t the G8 machine. Menggunakan XFS pada penyimpanan saluran serat tidak menunjukkan masalah. Jadi sudah pasti di suatu tempat dalam interaksi antara xfs / hpsa / p420i.

XFS

XFS terbaru di rhel 8 tampaknya dapat mendeteksi lebar garis yang mendasarinya, tetapi hanya pada pengontrol p420i yang menggunakan driver hpsa, bukan pengontrol p410i yang menggunakan cciss.

output 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 keduanya 0 di semua pengaturan ditandai sebagai OK di atas. Kami tampaknya tidak dapat mengubah ini, baik dalam mkfs atau dengan opsi mount noalign. Kami juga tidak tahu apakah ini penyebabnya.

Hugepages

Orang lain yang mengalami masalah XFS pada rhel 6, mengatakan bahwa menonaktifkan hugepage, dan khususnya hugepage transparan dapat bermanfaat. Kami menonaktifkan keduanya, masalahnya tidak hilang.

Kami sudah mencoba dan mengamati banyak hal, tidak ada yang berikut yang membantu:

  • Menggunakan numactl untuk memengaruhi alokasi memori. Kami perhatikan bahwa g7 dan g8 memiliki tata letak numa yang berbeda, tidak ada efek yang terlihat
  • Kernel yang lebih baru (sama baru dengan 3.6) tampaknya tidak menyelesaikan ini. Juga tidak menggunakan fedora 17.
  • iostat tidak melaporkan peningkatan sepuluh kali lipat dalam transaksi tulis, hanya dalam jumlah byte yang ditulis
  • Menggunakan penjadwal I / O yang berbeda tidak berpengaruh.
  • Memasang noatime / nobarrier / nopdiratime filesystem yang relevan tidak membantu
  • Mengubah / proc / sys / vm / dirty_ratio tidak berpengaruh
  • Ini terjadi baik pada sistem berbasis 2640 dan 2670 CPU
  • hpsa-3.2.0 tidak memperbaiki masalah
Dennis Kaarsemaker
sumber
Tampilkan XFS mkfs.xfsdan mountopsi Anda. EL6 sadar akan penyelarasan partisi. HPSA akan digunakan untuk kedua jenis kontroler Smart Array di bawah EL6, tetapi EL5 akan menggunakan CCISS.
ewwhite
opsi mkfs: tidak ada. Mount line: / dev / mapper / sysvm-mysqlVol on / mysql / bp ketik xfs (rw, alokasikan ukuran = 1m). Akan menambahkan output xfs_info penuh ke posting.
Dennis Kaarsemaker
Jadi apa solusinya?
ewwhite

Jawaban:

7

XFS dan EL6 telah jatuh ke keadaan jelek ... Saya telah meninggalkan XFS pada sistem EL6 untuk sementara waktu karena beberapa fitur hulu / perubahan menyelinap ke dalam kernel Red Hat ...

Yang ini mengejutkan dan menyebabkan kepanikan: Mengapa filesystem XFS saya tiba-tiba menghabiskan lebih banyak ruang dan penuh dengan file yang jarang?

Sejak November 2012, pengiriman versi XFS di kernel lebih baru daripada 2.6.32-279.11.1.el6memiliki beban yang mengganggu dan masalah kinerja yang berasal dari Red Hat Bugzilla 860787 . Sejak itu, saya memiliki kinerja yang tidak dapat diprediksi dan menjalankan antrian yang lebih tinggi daripada rata-rata.

Untuk sistem baru, saya menggunakan ZFS atau hanya ext4. Untuk sistem yang lebih lama, saya membekukannya 2.6.32-279.11.1.el6.

Coba putar kembali ke versi itu dengan:

yum install kernel-2.6.32-279.11.1.el6.x86_64

Selain hal di atas, karena jenis pengontrol RAID yang Anda gunakan, pengoptimalan tipikalnya adalah:

Pasang sistem file XFS Anda noatime. Anda juga harus memanfaatkan kerangka kerja yang disetel dengan:

tuned-adm profile enterprise-storage

untuk mengatur readahead, nobarrier dan I / O lift ke baseline yang baik.


Edit:

Ada banyak rekomendasi seputar optimasi sistem file XFS. Saya telah menggunakan sistem file secara eksklusif selama dekade terakhir dan harus sesekali menyesuaikan parameter ketika perubahan mendasar pada sistem operasi terjadi. Saya belum mengalami penurunan kinerja yang dramatis seperti milik Anda, tetapi saya juga tidak menggunakan LVM.

Saya pikir itu tidak masuk akal untuk mengharapkan EL5 untuk bertindak dengan cara yang sama seperti EL6 , mengingat generasi kernel yang berbeda, default yang disusun, penjadwal, paket, dll.

Apa yang akan saya lakukan pada titik ini ??

  • Saya akan memeriksa parameter mkfs.xfs dan bagaimana Anda membangun sistem. Apakah Anda menggunakan partisi XFS selama instalasi atau membuat partisi setelah fakta? Saya melakukan pembuatan sistem file XFS setelah instalasi OS utama karena saya memiliki lebih banyak fleksibilitas dalam parameter yang diberikan.

  • Parameter pembuatan mkfs.xfs saya sederhana: mkfs.xfs -f -d agcount=32 -l size=128m,version=2 /dev/sdb1misalnya.

  • My opsi untuk mount adalah: noatime,logbufs=8,logbsize=256k,nobarrierSaya akan memungkinkan XFS dinamis preallocation untuk berjalan secara native dan tidak membatasi itu seperti yang ada di sini. Kinerja saya meningkat dengan itu.

  • Jadi saya tidak menggunakan LVM . Terutama di atas RAID perangkat keras ... Terutama pada pengontrol Smart Array HP, di mana ada beberapa fungsi mirip LVM yang asli pada perangkat. Namun, menggunakan LVM, Anda tidak memiliki akses ke fdiskuntuk pembuatan partisi mentah. Satu hal yang berubah dari EL5 ke EL6 adalah penyelarasan partisi di installer dan perubahan ke fdisk untuk mengatur sektor awal pada batas silinder.

  • Pastikan Anda menjalankan pengontrol dan drive HP Smart Array Anda pada level revisi saat ini. Pada titik itu, masuk akal untuk memperbarui seluruh server ke Paket Layanan HP saat ini untuk revisi firmware ProLiant . Ini adalah DVD yang dapat di-boot yang akan memutakhirkan semua komponen yang terdeteksi dalam sistem.

  • Saya akan memeriksa pengaturan pengontrol RAID. Pastebin output dari hpacucli ctrl all show config detail. Ini milik saya. Anda ingin rasio cache bias terhadap menulis dibandingkan membaca. 75:25 adalah norma. Ukuran strip default 256K harus baik untuk aplikasi ini.

  • Saya berpotensi mencoba ini tanpa LVM.

  • Apa sysctl.confparameter Anda ?

putih
sumber
Sayangnya, kernel lama menunjukkan perilaku yang sama.
Dennis Kaarsemaker
Tes tanpa LVM.
ewwhite
1

Kami memiliki masalah yang sama, dan menemukan itu karena perubahan versi log XFS. Versi 2 log menghormati set lebar garis yang digunakan dengan mkfs.xfs. Jika Anda melakukan banyak fsync, kartu raid Anda tidak dapat lagi memalsukan log-log itu. Anda dapat mengujinya dengan memformat partisi tanpa pengaturan swidth (tidak ada bedanya dengan RAID 1 + 0). Anda dapat memverifikasi itu dengan blktrace / seekwatcher untuk melihat apakah itu melibatkan banyak pembaruan log.

mjiang
sumber
Apa mkfs.xfsstring perintah Anda ?
ewwhite
Saya sendiri bermaksud memberikan jawaban, karena kami akhirnya menemukannya. Jawaban Anda adalah bagian dari solusi, tetapi tidak semuanya.
Dennis Kaarsemaker
mkfs.xfs -f / your_dev
mjiang