Re: CEEVGTSI GET A STACK INCREMENT performance problem
On Wed, 18 Mar 2009 04:32:44 -0500, Big Iron billlalo...@rocketmail.com wrote: The storage report doesn't appear to indicate an issue. You may wish to investigate performance issues with CEEVGTSI with IBM support. Bill On Wed, 18 Mar 2009 10:26:50 +0200, Arie Kremer arie...@gmail.com wrote: Hi, Please see my question at the end of this mail... Our customer run strobe report and found that CEEVGTSI took 55% CPU: .LELIBCEEBINIT CEEVGTSI GET A STACK INCREMENT 54.55 54.55 54.55 54.55 .LELIBCEEBINIT CEEVOGTS XTND USR STK/DSA OPLINK 3.35 3.35 57.90 57.90 .LELIBCEEPLPKA CEEV#GH ALLOCATE STORAGE2.37 2.41 60.27 60.31 .LELIBCEEPLPKA CEEV#FH FREE STORAGE2.26 2.26 62.53 62.57 .LELIBCEEEV003 EDCVSPTF LE/370 C EVENT HANDLER 1.05 1.05 63.58 63.62 BASE @ST00038 000F50 2 .93 .93 64.51 64.55 BASE @ST00105 002B84 2 .82 .82 65.33 65.37 .LELIBCEEEV003 EDCMMOVE LE/370 C EVENT HANDLER .51 .51 65.84 65.88 .LELIBCEEBINIT CEEVGTS XTND USR STACK, GET DSA .47 .47 66.31 66.35 .COMSERV EZBTIINI EZBTCFWR TCP/IP .43 .43 66.74 66.78 CEEVGTSI is called from many places of our BASE module. The product uses multothread architechture, it receives TCP/IP requests and moves them to CICS via EXCI. ALL31(OFF) RPTSTG report: 0STACK statistics: Initial size: 2048000 Increment size:1024000 Maximum used by all concurrent threads: 31584 Largest used by any thread: 31584 Number of segments allocated:1 Number of segments freed:0 0THREADSTACK statistics: Initial size:0 Increment size: 0 Maximum used by all concurrent threads: 0 Largest used by any thread: 0 Number of segments allocated:0 Number of segments freed:0 0LIBSTACK statistics: Initial size:32768 Increment size: 16384 Maximum used by all concurrent threads: 0 Largest used by any thread: 0 Number of segments allocated:1 Number of segments freed:0 0THREADHEAP statistics: Initial size: 4096 Increment size: 4096 Maximum used by all concurrent threads: 0 Largest used by any thread: 0 Successful Get Heap requests:0 Successful Free Heap requests: 0 Number of segments allocated:0 Number of segments freed:0 0HEAP statistics: Initial size: 14336000 Increment size: 524288 Total heap storage used (sugg. initial size): 11751304 Successful Get Heap requests: 144269 Successful Free Heap requests: 144237 Number of segments allocated:1 Number of segments freed:0 My question is: may the large number of Get heap requests cause such problem? If not, what the problem may be? Arie Kremer The first thing to be sure to understand is that when RPTSTG(ON) is in effect, CEEVGTSI will get control all the time. What are the numbers for the CSECT usage when RPTSTG(ON) is not in effect? Also, what runtime options are in effect? Heavy usage of CEEVGTSI is almost always attributed to one or more of the following conditions: 1) RPTSTG(ON) being in effect, 2) runtime option STORAGE(,,xx) where xx is something other than NONE or CLEAR, and 3) when the application may be toggling over a stack segment boundary due to STACK(,,,FREE) being in effect. Nick Carbone IBM Language Environment -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at
Re: CEEPRM00 for dummies (me)
The CEEDOPT syntax which includes the '=' sign and the OVR|NONOVR suboption is not permitted in CEEPRM00. Rick Fochtman wrote: In this example you post, your parentheses are badly out of balance. Could that be a contributing factor ?? John Kelly wrote: I am attempting to put in CEEPRM00 and I am having syntax/usage problem(s). The initTuning manual implies that The valid options for each group in a parmlib member are the same options that are valid in the Assembler parts of the same name and the assembler example is : CEEDOPT CSECT CEEDOPT AMODE ANY CEEDOPT RMODE ANY CEEXOPT ABPERC=((NONE),OVR), ABTERMENC=((ABEND),OVR), So using the CEEPRM00 example and our usermod parms, I coded CEEDOPT( ABPERC((NONE),OVR), ABTERMENC((ABEND),OVR), when I set the member (t cee=01), I receive the rather obtuse message that indicate that the member has errors. Line number would a good addition but I digress. The message go for a while and I think that it doesn't like the OVR sub option? Any help available ? The error messages, for the first option, I think, are: CEE3731I THE FOLLOWING MESSAGES PERTAIN TO THE SYSTEM DEFAULT RUN-TIME OPTIONS IN THE OPTIONS GROUP CEEDOPT IN PARMLIB MEMBER CEEPRM01 CEE3604I THE CHARACTOR '(' IS NOT A VALID SUBOPTION DELIMITER FOR RUN-TIME OPTIONS. CEE3612I TOO MANY SUBOPTIONS WERE SPECIFIED FOR THE RUN-TIME OPTION ABPERC . CEE3603I THE CHARACTOR ')' IS NOT A VALID RUN-TIME OPTION DELIMITER. CEE3611I THE RUN-TIME OPTION OVR WAS AN INVALID RUN-TIME OPTION OR IS NOT SUPPORTED IN THIS RELEASE OF LANGUAGE ENVIRONMENT. Jack Kelly 202-502-2390 (Office) -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- Rick -- Remember that if youre not the lead dog, the view never changes. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html Nick Carbone IBM Language Environment -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: CEEPIPI questions
Miklos, I believe in this environment, each TCB will needs its own CEEPIPI environment. If there will be multiple TCBs that need POSIX(ON), then you probably also need to do the BPX1SDD (set_dub_default) call to tell UNIX System Services to create a new process just prior to the CEEPIPI initialization call. The U4093-AC is specific to multiple POSIX(ON) enclaves in the same LE process, but I am missing how you might be getting that. I know I have not addressed all of your questions. On Tue, 6 Mar 2007 14:28:45 +0100, Miklos Szigetvari [EMAIL PROTECTED] wrote: I have a multitask assembler server application, which calls C++ POSIX(ON) modules in different point of the processing: for example the XERCES XML parser, a HTML parser, etc. I got some problems with multitasking and POSIX(ON), I got time to time a 4093 x'AC' abend. The idea was to use CEEPIPI to create independent environments. My questions: - can I use init_sub_dp in the main task and use the same token in all the subtasks or I need to init the environment in every subtask ? I need an independent enclave for every subtask - can I use the call_sub_addr ? - how can I pass parameters to the called routines ? #pragma runopts(plist(os)) -- Miklos Szigetvari Development Team ISIS Information Systems Gmbh tel: (+43) 2236 27551 570 Fax: (+43) 2236 21081 E-mail: [EMAIL PROTECTED] Info: [EMAIL PROTECTED] Hotline: +43-2236-27551-111 Visit our Website: http://www.isis-papyrus.com --- This e-mail is only intended for the recipient and not legally binding. Unauthorised use, publication, reproduction or disclosure of the content of this e-mail is not permitted. This email has been checked for known viruses, but ISIS accepts no responsibility for malicious or inappropriate content. --- -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Java/LE Tuning Advice sought
On Thu, 26 Oct 2006 08:56:16 -0500, Kirk Wolf [EMAIL PROTECTED] wrote: Tom, John may correct me, but I believe that the storage report was from running java -version and not the actual program. As previous mentioned on the forum, a LE Storage Report might be helpful in figuring out if there are tuning problems in LE. There should be a way to get the app to shut down, here are some ideas: - run under an interactive shell and use cntl-C to send SIGTERM to java. - if running under BPXBATCH, you can use the ps command to find the java process, and send it SIGTERM with: kill -TERM pid - use the JBOSS console to shut it down. - FWIW: if you were running JBOSS under JZOS, you could simply use the MVS STOP command Kirk Pinnnacle wrote: John, LE storage looks good. Any differences in your run times? If not, your problem ain't LE. Tom It is true the storage report would only be useful from the real application. The problem is that the storage report will not be written if the application is terminated abnormally, and I think John said he could not get it to run to completion. Nick Carbone -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Java/LE Tuning Advice sought
Thanks, this is what I wanted. I've removed all but the options that are really going to matter for performance (for java)... Programmer default ALL31(ON) Programmer default ANYHEAP(786432,131072,ANYWHERE,FREE) Programmer default BELOWHEAP(24576,2048,FREE) Programmer default HEAP(4194304,524288,ANYWHERE,FREE,8192,4096) Installation default HEAPPOOLS(OFF,8,10,32,10,128,10,256,10,1024,10,2048,10,0,10,0,10,0,10,0, 10,0,10,0,10) Programmer default STACK(49152,16384,ANYWHERE,KEEP,65536,16384) Programmer default STORAGE(NONE,NONE,NONE,1024) Installation default THREADSTACK(OFF,4096,4096,BELOW,KEEP,131072,131072) The java program does set several options as programmer defaults, as indicated above. The one that might be causing an issue with respect to performance is STACK where the 5th suboption is only 64K. The normal LE default is 512K here, but I believe Java reduced that to ensure more threads could be created. Note that when THREADSTACK(OFF) is in effect, STACK values are used for pthreads. That is why Java set a lower default. Consider experimenting with larger values for the 5th suboption, possibly doubling and then adding 64K each time to see if it helps improve performance. HEAPPOOLS(ON) may also help. Without a real storage report for some sample application that is considered to have a performance problem, I can't be more specific about what option values to use. I noticed STORAGE(00,NONE,NONE,0) as an installation default. Hopefully this is not ever really in effect for a Java application. The first suboption says to clear heap storage when it is allocated, could be expensive. Installation default due to removal of WSCLEAR equivalent from current COBOL compilers. I see it is overridden in the above report. -jc- Yes, STORAGE(00) is for WSCLEAR equivalence. I should have been more specific in my comment. I really wanted to say that it is not recommeded to run that way for C/C++ or Java, and you will notice from the new options report that Java set STORAGE as a programmer default to what is the LE recommendation. Nick Carbone -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Java/LE Tuning Advice sought
Bill, CEE3DMP will not create a storage report like RPTSTG(ON). Nick Carbone -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Java/LE Tuning Advice sought
If you send me an Options Report and Storage Report, obtained running RPTOPTS(ON) and RPTSTG(ON), I will do what I can to suggest LE options settings that may help improve performance. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Java/LE Tuning Advice sought
On Wed, 25 Oct 2006 12:40:42 -0500, Kirk Wolf [EMAIL PROTECTED] wrote: How about starting the app from an interactive Unix Shell and pressing Cntl-C? Chase, John wrote: -Original Message- From: IBM Mainframe Discussion List On Behalf Of Nicholas Carbone If you send me an Options Report and Storage Report, obtained running RPTOPTS(ON) and RPTSTG(ON), I will do what I can to suggest LE options settings that may help improve performance. Thanks, but the application has a defect that requires it to be cancelled to end execution and produce the reports. Thus, I cannot produce them. I do have a console dump of its address space :-) -jc- The application is going to have to terminate normally to get the Storage Report. So, if there is something more simple that can be run so I can get a look at the Options Report (want to see the default options for java), then maybe I see something there. Nick Carbone -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Java/LE Tuning Advice sought
On Wed, 25 Oct 2006 14:42:46 -0500, Chase, John [EMAIL PROTECTED] wrote: -Original Message- From: IBM Mainframe Discussion List On Behalf Of Nicholas Carbone On Wed, 25 Oct 2006 12:40:42 -0500, Kirk Wolf wrote: How about starting the app from an interactive Unix Shell and pressing Cntl-C? The application is going to have to terminate normally to get the Storage Report. So, if there is something more simple that can be run so I can get a look at the Options Report (want to see the default options for java), then maybe I see something there. Best I can do is this, from the abortive attempt to run it interactively: ---£-Options Report for Enclave main 10/25/06 2:18:37 PM Language Environment V01 R05.00 LAST WHERE SET OPTION -- - Installation default ABPERC(NONE) Installation default ABTERMENC(ABEND) Installation default NOAIXBLD Installation default ALL31(OFF) Installation default ANYHEAP(16384,8192,ANYWHERE,FREE) Installation default NOAUTOTASK Installation default BELOWHEAP(8192,4096,FREE) Installation default CBLOPTS(ON) Installation default CBLPSHPOP(ON) Installation default CBLQDA(OFF) Installation default CHECK(ON) Installation default COUNTRY(US) Installation default NODEBUG Installation default DEPTHCONDLMT(10) Installation default ENVAR() Installation default ERRCOUNT(0) Installation default ERRUNIT(6) Installation default FILEHIST Installation default FILETAG(NOAUTOCVT,NOAUTOTAG) Default settingNOFLOW Installation default HEAP(32768,32768,ANYWHERE,KEEP,8192,4096) Installation default HEAPCHK(OFF,1,0,0,0) Installation default HEAPPOOLS (OFF,8,10,32,10,128,10,256,10,1024,10,2048,10,0,10,0,10,0,10,0,10,0,10,0,10 ) Installation default INFOMSGFILTER(OFF) Installation default INQPCOPN Installation default INTERRUPT(OFF) Installation default LIBRARY(SYSCEE) Installation default LIBSTACK(4096,4096,FREE) Installation default MSGFILE(SYSOUT,FBA,121,0,NOENQ) Installation default MSGQ(15) Installation default NATLANG(ENU) IgnoredNONONIPTSTACK(See THREADSTACK) Installation default OCSTATUS Installation default NOPC Installation default PLITASKCOUNT(20) Default setting POSIX(ON) Installation default PROFILE(OFF,) Installation default PRTUNIT(6) Installation default PUNUNIT(7) Installation default RDRUNIT(5) Installation default RECPAD(OFF) Invocation command RPTOPTS(ON) Invocation command RPTSTG(ON) Installation default NORTEREUS Installation default RTLS(OFF) Installation default NOSIMVRD Invocation command STACK (131072,131072,ANYWHERE,KEEP,131072,131072) Installation default STORAGE(00,NONE,NONE,0) Installation default TERMTHDACT(TRACE,,96) Installation default NOTEST(ALL,*,PROMPT,INSPPREF) Installation default THREADHEAP(4096,4096,ANYWHERE,KEEP) Installation default THREADSTACK (OFF,4096,4096,BELOW,KEEP,131072,131072) Installation default TRACE(OFF,4096,DUMP,LE=0) Installation default TRAP(ON,SPIE) Installation default UPSI() Installation default NOUSRHDLR(,) Installation default VCTRSAVE(OFF) Installation default VERSION() Installation default XPLINK(OFF) Installation default XUFLOW(AUTO) # Compared to the VSMDATA display from the dump I took the other day, the above does not even remotely reflect the storage allocated within the primary address space of the started task instance. -jc- Some comments. It seems STACK is also specified in the _CEE_RUNOPTS, but I need to see the Options Report when that is not specified. In other words, just specify _CEE_RUNOPTS=RPTOPTS(ON) RPTSTG(ON). Is this a report from running the java program? Maybe something like java -version might produce something that would tell me what the java application defaults are. The options report here looks more like a hello world program, since most of the option values have the LE defaults. I noticed STORAGE(00,NONE,NONE,0) as an installation default. Hopefully this is not ever really in effect for a Java application. The first suboption says to clear heap storage when it is allocated, could be expensive. Nick Carbone -- For IBM-MAIN subscribe / signoff / archive access instructions, send email