Hi,
The aim of this post is to determine whether -directio is the answer. Are there any downsides to using it?
My research indicates an almost 90% improvement. All from Sync Time, which correlates to Progress KB - What value should -B be set to?, although this suggests it will only improve slightly
Here's the background.
We recently moved provider and whilst moving we also tried to upgrade from Windows 2008 to 2016. The way in which Windows manages its memory between the two versions is intensely different and this caused huge issues and we saw a strange pattern in which 2016 performed much better from a cold start, but as the buffers filled, both within the database and windows, the longer a checkpoint took to complete compared to 2008. After months of testing and getting the Progress guys in, we used RAMMap and emptied the buffer pools within Windows and this seemed to improve checkpoints again vastly. But this seemed to only be a temporary fix, as this would need to be scheduled to run every so often. We had Microsoft involved and they saw an issue from their end and created an alpha patch for Windows 2019 for us to test, as they didn’t see the benefit of doing this for 2016. Anyway, it took a while for the patch to become available and we decided to stick with 2008, upon re-testing 2016 and 2019, I couldn’t replicate the original issue. Which I thought was very strange but then again any delay to the project was political and would have to be funded by the party where the blame lied, so maybe not so strange after all.
I digress slightly; but if you’d like to know more I’m sure I can dig out some stuff.
Whilst doing all the above testing one of the options I explored was –directio and this seemed to solve all of our issues, but the project didn’t want to ‘change the fundamental way in which the system worked’. Which I can understand. It worked before with the settings. It also seems to work now.
Now we have moved to the new provider, I started testing the settings within our main databases and naturally I started with –directio, considering the benefits. I’ve been through all parameters that I can think of and ive attached the difference between direction being off, then on, then on with pinshm (slight improvement).
These tests were performed on Windows 2016, although Prod is still on 2008.
OpenEdge 11.7.3.005.
DB Size 5056GB
Blocksize 4096
-B 22,500,000
-B2 No
WDOG Yes
APW's 3
-bibufs 150
-bithold 3
-Mf 3
-G 60
-groupdelay 0
BI Cluster Size 262128
BI Block Size 16
bigrow 10
Thanks
The aim of this post is to determine whether -directio is the answer. Are there any downsides to using it?
My research indicates an almost 90% improvement. All from Sync Time, which correlates to Progress KB - What value should -B be set to?, although this suggests it will only improve slightly
Here's the background.
We recently moved provider and whilst moving we also tried to upgrade from Windows 2008 to 2016. The way in which Windows manages its memory between the two versions is intensely different and this caused huge issues and we saw a strange pattern in which 2016 performed much better from a cold start, but as the buffers filled, both within the database and windows, the longer a checkpoint took to complete compared to 2008. After months of testing and getting the Progress guys in, we used RAMMap and emptied the buffer pools within Windows and this seemed to improve checkpoints again vastly. But this seemed to only be a temporary fix, as this would need to be scheduled to run every so often. We had Microsoft involved and they saw an issue from their end and created an alpha patch for Windows 2019 for us to test, as they didn’t see the benefit of doing this for 2016. Anyway, it took a while for the patch to become available and we decided to stick with 2008, upon re-testing 2016 and 2019, I couldn’t replicate the original issue. Which I thought was very strange but then again any delay to the project was political and would have to be funded by the party where the blame lied, so maybe not so strange after all.
I digress slightly; but if you’d like to know more I’m sure I can dig out some stuff.
Whilst doing all the above testing one of the options I explored was –directio and this seemed to solve all of our issues, but the project didn’t want to ‘change the fundamental way in which the system worked’. Which I can understand. It worked before with the settings. It also seems to work now.
Now we have moved to the new provider, I started testing the settings within our main databases and naturally I started with –directio, considering the benefits. I’ve been through all parameters that I can think of and ive attached the difference between direction being off, then on, then on with pinshm (slight improvement).
These tests were performed on Windows 2016, although Prod is still on 2008.
OpenEdge 11.7.3.005.
DB Size 5056GB
Blocksize 4096
-B 22,500,000
-B2 No
WDOG Yes
APW's 3
-bibufs 150
-bithold 3
-Mf 3
-G 60
-groupdelay 0
BI Cluster Size 262128
BI Block Size 16
bigrow 10
Thanks
Attachments
Last edited: