[BSD] I/O sebesseg merese

Laszlo Nagy gandalf at designaproduct.biz
2006. Sze. 11., H, 14:50:16 CEST


>> "select count(*) from from nagyon_nagy_tabla where <feltetel>"
>>
>> tipusu lekerdezest futtatok, akkor is nagyon lassu. Ez 1 tablazat, es 
>> seq scan-t hasznal a tablara. Tehat gyakorlatilag csak vegigolvas egy 
>> file-t. A tablaban 700 000 rekord van es 3GB a tabla merete a lemezen. 
>> Megis tobb percig tart mire lefut ez a lekedezes. Hogyan tudnam gyorsitani?
>>   
>>     
> esetleg mogeraksz egy oracle clustert SANal
> csak 700K rekord es csak 3GB?
> szerinted megis 3GB adat nyers olvasasa meddig tart el? :)
Most is épp vaacum-ozom ezt a táblát. Itt egy érdekes kimenet:

#iostat ad4 ad6 5
      tty             ad4              ad6             cpu
 tin tout  KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
   0  709 26.73  39  1.02  26.68  39  1.02  19  0  7  0 74
   0   36 21.39  87  1.82  21.38  87  1.82  13  0 53  1 33
   0   12 23.86  95  2.21  23.86  95  2.21  14  0 49  1 35
   0   12 20.30 108  2.14  20.30 108  2.14  11  0 49  1 39

Elvileg az SATA150 tudja a 150MB/sec-et. De itt láthatólag a vinyó csak 
2 MB/sec-en van használva, és a CPU is csak 3%-on van. Viszont az egész 
rendszer le van lassulva. Nem értem miért! 3GB nyers adat olvasása egy 
SATA150 vinyóval elvileg 20-30 másodperc. Ha föltesszük hogy nem itt a 
szűk keresztmetszet, hanem a CPU-nál, akkor miért csak 3%-on áll a CPU? 
Ha mégis az I/O a szűk keresztmetszet, akkor miért nem látok legalább 
60MB/sec értéket?

Csináltunk még egy tesztet. Nagy file másolása 6MB/sec értéket írt ki. 
Szerintem ez kevés! Lehet hogy rosszul kezeli az SATA vezérlőt a rendszer?

   Laci





További információk a(z) BSD levelezőlistáról