[Samba] Performance: FASTIO_CHECK_IF_POSSIBLE win32 call differs on Linux / SunOS [LONG]

Leroy van Logchem Leroy.vanLogchem at wldelft.nl
Mon Jun 30 12:17:26 GMT 2003


Hello,

I'am having huge performance problems using a application on win32 which 
uses alot of .DBF files.
The app uses *alot* of small file reads, varying between 20-512 bytes 
per read. On Windows there is something, only just learned this, called 
fastio. This fastio acts like a cache because it reads-ahead 4096-bytes 
even if you want to have 1 single byte. Ok, that's all nice _but_  after 
searching and digging a couple of hours though the file-IO calls on the 
win32 side with filemon, I found out some differences.

Please let me show the difference:

[Server one: Linux - superb fast, no problems]
FASTIO_QUERY_STANDARD_INFO    Z:\pv8\8.1f\ADRESSEN.PV    FAILURE
IRP_MJ_QUERY_INFORMATION    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    
FileStandardInformation
IRP_MJ_READ     Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Offset: 0 Length: 
16384
IRP_MJ_READ*    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Offset: 0 Length: 
16384
FASTIO_CHECK_IF_POSSIBLE    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Read: 
Offset: 16384 Length: 16384
IRP_MJ_READ*    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Offset: 16384 
Length: 16384
FASTIO_READ    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Offset: 16384 
Length: 16384
FASTIO_CHECK_IF_POSSIBLE    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Read: 
Offset: 32768 Length: 16384
IRP_MJ_READ*    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Offset: 32768 
Length: 16384
FASTIO_READ    Z:\pv8\8.1f\ADRESSEN.PV    SUCCESS    Offset: 32768 
Length: 16384
and so on....

[Server two: SunOS - very slow]
FASTIO_QUERY_STANDARD_INFO    V:\PerfectView\8.1f\Relbeh\ADRESSEN.PV    
FAILURE
IRP_MJ_QUERY_INFORMATION    V:\PerfectView\8.1f\Relbeh\ADRESSEN.PV    
SUCCESS    FileStandardInformation
IRP_MJ_READ     V:\PerfectView\8.1f\Relbeh\ADRESSEN.PV    SUCCESS    
Offset: 0 Length: 16384
IRP_MJ_READ     V:\PerfectView\8.1f\Relbeh\ADRESSEN.PV    SUCCESS    
Offset: 16384 Length: 16384
and so on...

Notice the difference here, the reading on the sun doesnt even try to 
use the other systemcall FASTIO_READ.
Note: Nothing changed in the app, only the location of the database files.

My question about these matters, what can I do about it? Thanks for any 
help on this.

Best regards,
Leroy


Note: It's a relation management program called PerfectView 8.




More information about the samba mailing list