Overlapped IO Support Question

FAQ, getting help, user experience about VSuite Ramdisk
Post Reply
anonpiss
Level 1
Level 1
Posts: 2
Joined: Sat Apr 03, 2010 3:49 pm

Overlapped IO Support Question

Post by anonpiss »

I am planning to buy the Server edition to use on my Windows XP 32bit.
My system has 4GB and using a XP 32bit can only recognize 3GB.

From your test you revealed that overlapped IO support under the applications which use greater than 1 Outstanding I/Os can achieve better access speed.

May I know how to tell if an application that I want to put in the RAMDisk uses how many outstanding I/O?
I tried googling to find out what is the meaning of "outstanding IO" but no success.

The application that I intend to run in RAMDisk uses a lot of CPU power and when peak, it can go up to 99%.
Can you advice if the server edition of vsuite ramdisk will also put some load on the CPU usage?

Will also using the "Real-Time Save" option take up a lot of CPU power?

Thanks.
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Overlapped IO Support Question

Post by Support »

Overlapped I/O, aka Asynchronous I/O, allows an application to issue an I/O request and then continue with other work while the I/O is in progress. Thus it can improve an application's throughput. However you may have found that to fully use overlapped I/O feature, the applications must be designed to support it. An application without overlapped I/O support has to wait the completion of the issued I/O whether the lower device (here, ramdisk) completes it in an asynchronous way or not. Obviously Overlapped I/O can't give the boost to the performance for this kind of applications.

Because applications are not developped by us, we don't think we can do anything to change the applications' feature.

PS, don't confuse the case of an application starting up from the ramdisk with that of an application accessing data on the ramdisk. Assume the executable files of an application are placed on the ramdisk. When you startup the application, Windows thread will load the application's executable files (.exe, .dll, etc) from the ramdisk at first. At that time the I/O feature is decided by the Windows thread. While the application running, it may read/write some data on ramdisk via issuing I/Os. Now the type of these I/O is controlled by the application. So if the application don't access the data on ramdisk, then nothing with overlapped I/O feature of the ramdisk.
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Overlapped IO Support Question

Post by Support »

Regarding the "Real-Time Save" option, pls refer to
http://www.romexsoftware.com/main/suppo ... -time-save

It degrades the performance of the ramdisk, as well as it occupies some CPU time. Because the ramdisk needs to write data to the image file almost at the same time it receives a write I/O.
anonpiss
Level 1
Level 1
Posts: 2
Joined: Sat Apr 03, 2010 3:49 pm

Re: Overlapped IO Support Question

Post by anonpiss »

support wrote:Overlapped I/O, aka Asynchronous I/O, allows an application to issue an I/O request and then continue with other work while the I/O is in progress. Thus it can improve an application's throughput. However you may have found that to fully use overlapped I/O feature, the applications must be designed to support it. An application without overlapped I/O support has to wait the completion of the issued I/O whether the lower device (here, ramdisk) completes it in an asynchronous way or not. Obviously Overlapped I/O can't give the boost to the performance for this kind of applications.

Because applications are not developped by us, we don't think we can do anything to change the applications' feature.

PS, don't confuse the case of an application starting up from the ramdisk with that of an application accessing data on the ramdisk. Assume the executable files of an application are placed on the ramdisk. When you startup the application, Windows thread will load the application's executable files (.exe, .dll, etc) from the ramdisk at first. At that time the I/O feature is decided by the Windows thread. While the application running, it may read/write some data on ramdisk via issuing I/Os. Now the type of these I/O is controlled by the application. So if the application don't access the data on ramdisk, then nothing with overlapped I/O feature of the ramdisk.

Thanks for your response. But how can I check if a program that I want to run in RAMDisk can issue an I/O request and then continue with other work while the I/O is in progress?
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Overlapped IO Support Question

Post by Support »

mmm, I don't know if there is a easy-use tool to directly show if the application uses overlapped I/O. But the tool "process monitor" from sysinternels (http://technet.microsoft.com/en-us/sysi ... 96645.aspx) can help. Since the overlapped i/o is specified by the application when it opens a file, you can monitor the "CreateFile" operation.
I attach some figures for expamle
here is the filter settings
overlappedio-2.JPG
overlappedio-2.JPG (38.48 KiB) Viewed 5974 times
Set "Process Name" to the application that want to be monitored.
Set "Operation" to "CreateFile"
Set "Path" to the files that the applications want to access.

After running the application, you may get the below data
overlappedio-1.JPG
overlappedio-1.JPG (195.66 KiB) Viewed 5974 times
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Overlapped IO Support Question

Post by Support »

Double click the traced entry, you will see the detailed information on the options of API CreateFile called.
Below is the some example
overlappedio-4.JPG
overlappedio-4.JPG (40.89 KiB) Viewed 5974 times
overlappedio-3.JPG
overlappedio-3.JPG (36.34 KiB) Viewed 5974 times
you may see one has option "synchronous IO no alert" while the other not.
Post Reply