CentOS 6 sta facendo molto più IO rispetto a CentOS 5


10

Sto confrontando un'applicazione su due server identici, uno è Centos 5.8 e l'altro è Centos 6.2. La mia applicazione funziona molto più lentamente (50% o meno) sulla macchina Centos 6.2.

Nel tentativo di diagnosticare il problema, seguo CPU, RAM e IO durante l'esecuzione del benchmark. Vedo che le letture del disco sono significativamente più alte sulla scatola Centos 6.2, misurata con iostat.

Entrambi i sistemi eseguono XFS dove è in esecuzione il mio benchmark. Entrambi sono server HP con controller RAID con cache da 512 MB e 8 SAS da 300 GB con RAID 10.

Ecco l'output di xfs_info per ciascuno:

CentOS5

meta-data=/dev/cciss/c0d0p5      isize=256    agcount=32, agsize=8034208 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=257094144, imaxpct=25
         =                       sunit=32     swidth=128 blks, unwritten=1
naming   =version 2              bsize=4096 
log      =internal               bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0

centos6

meta-data=/dev/sda5              isize=256    agcount=4, agsize=57873856 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=231495424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=113034, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Qual è esattamente la tua domanda?
Tim Brigham,

Puoi mostrare le opzioni di creazione del mount e del filesystem XFS? Puoi descrivere l'hardware e il layout del disco in modo più dettagliato?
ewwhite,

Il problema è che a parità di condizioni, almeno quelle che posso vedere, Centos 6.2 sta confrontando il 50% di Centos 5.8 per la mia applicazione. L'altra differenza che posso attualmente misurare è che le letture sono MOLTO più alte.
tmcallaghan,

Risposte:


10

Grazie per aver aggiornato il post con ulteriori informazioni.

Si sta eseguendo sui sistemi ProLiant, quindi c'è una certa quantità di lavoro necessaria per ottimizzare il controllo e la situazione di I / O . Inoltre, i tuoi montaggi XFS utilizzano le opzioni predefinite. Ricorda che stai utilizzando un driver diverso tra questi sistemi operativi. Il server ccissEL5 ha , mentre il sistema EL6 sta usando il hpsamodulo. C'è una differenza , tuttavia, il problema riscontrato è probabilmente correlato alle differenze del sistema operativo. Quindi ecco cosa controllerei:

  • Modifica i tuoi supporti XFS per includere noatimee disabilitare le barriere di scrittura con nobarrier. Ecco una stringa di montaggio di esempio che uso spesso .
  • Il comportamento dell'elevatore I / O è diverso tra le versioni di Linux. Prova il deadlineo noopI ascensore / O sui CentOS 6 del server. Puoi cambiarlo al volo con echo deadline > /sys/block/cciss\!c0d0/queue/schedulero aggiungendo elevator=deadlinenella voce boot di grub.
  • Assicurarsi che la cache di lettura / scrittura sia ottimale per il carico di lavoro. Di solito vado con il 75% in scrittura e il 25% in lettura.
  • Aggiorna il firmware sui componenti del server. Ogni revisione del firmware del controller RAID Smart Array tende a portare nuove funzionalità. Sembra un controller HP Smart Array P410, quindi assicurati di essere sulla versione 5.14 .

Modifica :
sto guardando l'output xfs_info per i tuoi sistemi CentOS 5 e CentOS 6. Hai formattato le partizioni XFS con parametri diversi!

Il sistema EL5 ha 32 gruppi di allocazione XFS, mentre il sistema EL6 ne ha solo 4. I gruppi di allocazione consentono a XFS di parallelizzare le operazioni simultanee del filesystem.

Data la quantità di spazio disponibile e le specifiche della CPU del server, la configurazione EL6 esistente è limitata dal minimo agcount. Vedi le note di Red Hat su questo. Su hardware come questo, in cui lo spazio di archiviazione non rientra nell'intervallo multi-Terabyte , in genere si specifica un gruppo di allocazione per 4 GB di spazio di partizione . Per lo meno, vai a 32 per abbinare il tuo server EL5 ... Prova a riformattare la partizione EL6 con quei parametri per vedere se c'è una differenza di prestazioni ...


Ho provato tutti e 4 i precedenti, nessuno ha fatto alcuna differenza misurabile nelle prestazioni dei miei benchmark.
tmcallaghan,

Vedi la mia modifica sopra. Le due partizioni XFS su EL5 e EL6 sono state formattate con parametri molto diversi.
ewwhite,

Grazie per l'assistenza continua, riformatterò il mio XFS e vedrò se questo aiuta.
tmcallaghan,

Si prega di pubblicare i risultati.
ewwhite,

3
Abbiamo scoperto che il problema era rappresentato da pagine enormi trasparenti. Disattivandolo le prestazioni del nostro server Centos6 sono simili a Centos5. Il comando era "$ echo mai> / sys / kernel / mm / redhad_transparent_hugepage / enabled". Altre distribuzioni lo fanno tramite / sys / kernel / mm / transparent_hugepage / enabled "
tmcallaghan

0

Quando esegui iotop, cosa sta leggendo il disco nella casella 6.2?

Inoltre, quali sono le opzioni di montaggio sul dispositivo da cui stai leggendo? Potresti voler esaminare il noatime e il relatime


Sto confrontando un'applicazione MySQL e non sto usando IO diretto.
tmcallaghan,

mount è identico su entrambe le macchine, "/ dev / cciss / c0d0p5 / default xfs 0 0"
tmcallaghan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.