LSI 53c1030 (Fusion MPT) performance with O_SYNC
Hi,
I have got a new dual-Opteron server based on Tyan S2880 motherboard with LSI53C1030 U320 controller onboard - there are 15kRPM Fujitsu disks.
I've noticed poor performance with MySQL/InnoDB when compared to another S2880-based box with IDE disks.
I've tracked it to this:
Let's have this code (notice the O_SYNC) and enough large test file.
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, void **argv)
{
char buffer[64];
int fd, i;
fd=open(argv[1], O_WRONLY|O_SYNC);
lseek(fd, 0, SEEK_SET);
for(i=0; i<10000; i++)
write(fd, buffer, 64); return 0;
}
The results are:
LSI53C1030:
$ time ./a.out testfile
real 0m4.218s user 0m0.002s sys 0m0.219s
IDE:
$ time ./a.out testfile
real 0m1.767s user 0m0.002s sys 0m0.356s
Changing size of written amount of data to 4096 the time ratio between LSI53C1030 and IDE is around 1:1.
Both boxes are running vanilla 2.6.7 kernel.
Any help appreciated,
Jan
PS: please CC, I am not on the list.
Quoted 2 lines · Jan Oravec
I've noticed poor performance with MySQL/InnoDB when compared to another S2880-based box with IDE disks.
your ide disk probably has write back caching enabled while your mptfusion doesn't..... if you value data integrity over performance the mptfusion has a saner default ;)
Quoted 8 lines · Arjan van de Ven
Quoted 2 lines · Jan Oravec
I've noticed poor performance with MySQL/InnoDB when compared to another S2880-based box with IDE disks.
your ide disk probably has write back caching enabled while your mptfusion doesn't..... if you value data integrity over performance the mptfusion has a saner default ;)
It was enabled:
# sginfo -c /dev/sda Caching mode page (0x8) ----------------------- Initiator Control 0 ABPF 0 CAP 0 DISC 1 SIZE 0 Write Cache Enabled 1 MF 0 Read Cache Disabled 0 Demand Read Retention Priority 0 Demand Write Retention Priority 0 Disable Pre-fetch Transfer Length 65535 Minimum Pre-fetch 0 Maximum Pre-fetch 0 Maximum Pre-fetch Ceiling 65535 FSW 1 LBCSS 0 DRA 0 Number of Cache Segments 8 Cache Segment size 0 Non-Cache Segment size 0
When I've disabled it on both mptfusion and IDE, it took 40s on mpt and 83s on IDE.
It seems like write-cache is not as effective on mptfusion as it is on IDE?
I am considering plugging there a ZCR with battery, so write-cache has a sense for me.
Jan