[BSD] I/O sebesseg merese

Laszlo Nagy gandalf at designaproduct.biz
2006. Sze. 12., K, 15:57:57 CEST


Attila Nagy írta:
> On 09/12/06 10:26, Laszlo Nagy wrote:
>   
>>> Több diszkkel? Hardveres RAID-del? Gyorsabb (10kRPM-es, SCSI) diszkekkel? 
>>>     
>>>       
>> A SCSI biztosan jo lenne, de draga.
>>
>>     
>   Akkor vegyél még SATA diszkeket. :)
>   
Az van, 2 x SATA150.
>   
>> Tegyuk fol, hogy random io-rol van szo. Miert van az, hogy egy seq scan 
>> fizikailag random io-ban vegzodik (full vacuum utan)?
>>   
>>     
> Nem ismerem a postgres táblaszerkezetét, de el tudom képzelni azt, hogy 
> ami nála szekvenciális, az fizikailag a diszken töredezett.
> Lehet játszani a blokkméretek állításával is, ezzel talán segíthetsz ezen.
>
> Azért egy dd-t csinálj már, hogy lássuk, mennyivel megy az a diszk.
>   
1GB memóriám van. Írás:

time sh -c "dd if=/dev/zero of=/usr/test/bigfile bs=8k count=250000 && 
sync "

250000+0 records in
250000+0 records out
2048000000 bytes transferred in 48.030627 secs (42639460 bytes/sec)
0.178u 8.912s 0:48.31 18.7%     9+96k 37+15701io 0pf+0w

Olvasás:

time sh -c "dd if=/usr/test/bigfile of=/dev/null bs=8k"

250000+0 records in
250000+0 records out
2048000000 bytes transferred in 120.198224 secs (17038521 bytes/sec)
0.063u 5.780s 2:00.21 4.8%      10+98k 29776+0io 0pf+0w

Ez már magában is furcsa, pont fordítva kellene lennie (gmirror van). :-)

Na közben rájöttem a megoldásra, kis segítséggel. Sok más oszlop is van 
a táblában, és a pg MINDEN adatot beolvas a táblából. Szóval nem azt 
csinálja hogy az index file-on megy végig (ami 66MB) és ha van találat 
akkor beolvassa a rekordot; hanem a tábla file-on megy végig, ami 1,1GB. 
Csináltam egy ilyet:

create table test(id int8 not null primary key, name text);
insert into test select id,name from product;

Ezután a

select id,name from test where name like '%Mug%';

1 másodpercen belül lefutott. Szóval azzal van a baj, hogy nagy a 
rekordok mérete. Majdnem hússzor annyi adatot nyal végig mint kellene. 
Tehát kiderült, hogy nem az oprendszerrel vagy a hardverrel van a baj. 
Elnézést kérek mindenkitől akit ezzel zavartam. Átmentem egy másik 
listára ezzel. :-)

   Laci





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