A few years ago I investigated the performance of our application on z/OS. The application is written in C and runs in batch and CICS. A customer reported that our latest version was not performing as well as the version they were currently running.
Testing showed there was a difference. The same tests did not show a difference on other platforms. z/OS has unique characteristics, not surprising given the hardware it runs on, and there are bound to be factors that affect performance that do not affect other platforms.
We build our application using unix system services and link the final modules into a Dataset (load library). What this means is that we can use standard unix shell utilities, make files and other tools just like on any other unix platform. This makes development much easier. The final link is the first time anything leaves the unix environment.
When investigating anything on z/OS the first place to go for information is the IBM Redbooks site. I found several books describing performance including one which used C to build several different types of applications.
The result of two weeks work was a final set of modules that performed about twenty percent faster and an increased understanding of how to set up the Unix system to be able to compile and link using the maximum optimization options. The final version I delivered did not use maximum optimizations as I had achieved the aim of improving performance to match or exceed that achieved with the old version. Using the greater optimizations increased build times and exceeded the temporary work-space settings.
For those of you building C programs using Unix System Services the default workspace sizes (for SYSLMOD for example) can be adjusted using the environment variable _CC_WORK_SPACE. The default is (32000,(30,30))
For example
export _CC_WORK_SPACE="(32000,(90,90))"
Configuring z/OS is not for the faint of heart and IBM support helped me with some of the issues. The final one I managed to figure out for myself. I used to administer our z/OS systems when we were running P/390 and FLEXES systems and I wish I had been able to access IBM support then! Searching through IBM manuals for something as complex as OS/390 (or z/OS as it has become) was never easy!
(Originally posted here)
Testing showed there was a difference. The same tests did not show a difference on other platforms. z/OS has unique characteristics, not surprising given the hardware it runs on, and there are bound to be factors that affect performance that do not affect other platforms.
We build our application using unix system services and link the final modules into a Dataset (load library). What this means is that we can use standard unix shell utilities, make files and other tools just like on any other unix platform. This makes development much easier. The final link is the first time anything leaves the unix environment.
When investigating anything on z/OS the first place to go for information is the IBM Redbooks site. I found several books describing performance including one which used C to build several different types of applications.
The result of two weeks work was a final set of modules that performed about twenty percent faster and an increased understanding of how to set up the Unix system to be able to compile and link using the maximum optimization options. The final version I delivered did not use maximum optimizations as I had achieved the aim of improving performance to match or exceed that achieved with the old version. Using the greater optimizations increased build times and exceeded the temporary work-space settings.
For those of you building C programs using Unix System Services the default workspace sizes (for SYSLMOD for example) can be adjusted using the environment variable _CC_WORK_SPACE. The default is (32000,(30,30))
For example
export _CC_WORK_SPACE="(32000,(90,90))"
Configuring z/OS is not for the faint of heart and IBM support helped me with some of the issues. The final one I managed to figure out for myself. I used to administer our z/OS systems when we were running P/390 and FLEXES systems and I wish I had been able to access IBM support then! Searching through IBM manuals for something as complex as OS/390 (or z/OS as it has become) was never easy!
(Originally posted here)
Comments
Post a Comment