![]() | |
#21
| |||
| |||
|
|
We are under G20 lock down, tasered into unconsciousness... The recommendation has been changed from 90% top 200%. So the 90% is outdated. I have used the Feedback button in the wrong doc to get this fixed (Hint, hint, it does NOT require an IBM employee to use this button...docs are big, mistakes happen) Cheer Serge -- Serge Rielau SQL Architect DB2 for LUW IBM Toronto Lab |
#22
| |||
| |||
|
#23
| |||
| |||
|
|
Mark, As you said yourself earlier defaults change (or rather: should change). 90% may have been better in the past and the team has learned that 200% is better on average now. I don't think that 90% is wrong or right. What we are talking about here are best practices and best practices change as products change and as experience accumulates. I'm being told that not all the doc changes for the recent change from 90% to 200% have been rolled out yet and the doc team is working on it. But this is not a HIPER APAR. Your company will not go out of business because you are still, obviously successfully, using 90%. Cheers Serge -- Serge Rielau SQL Architect DB2 for LUW IBM Toronto Lab |
#24
| |||
| |||
|
#25
| |||
| |||
|
|
Mark, Rather than continue what I'm sure could be an endless debate, let me try to bring this discussion to a close. Here's what we've heard so far: - At your company you hit some very specific problems with STMM which occur only on Linux and/or when running a large number of instances/ databases on the same physical machine. - You agree that these problems have been fixed in more recent fixpacks. - Several other customers have chimed in to report that STMM has been beneficial in their environments. While I'm not trying to minimize the problems you encountered, it's always helpful to have some perspective. It's true that there were some problems with some of the initial versions of STMM (something which I have never attempted to deny). That being said, if you look at these problems in the context of the number of customers that are using STMM, the issues have only affected a handful of customers running in some very specific environments. It's unfortunate that you happened to be one of those customers and that it affected your business so much. In all my discussions with customers I can say that the overwhelming majority of those who have tried STMM have been very happy with it. I am aware of that DB2Night Show poll (I have appeared on the DB2Night Show myself), but am not sure what to make of it. It's been my experience that many customers who claim to have had "issues" running STMM have either not been using it correctly (enabled only one or two memory consumers) or have expected it to achieve an ideal memory configuration immediately (when in fact STMM works to achieve an ideal configuration over time). Without more detailed information, it would be incorrect to use those numbers to support your argument that a significant number of people have experienced severe issues as a result of STMM. If you feel that it's easy to tune the database memory on your systems, then you are correct to disable STMM. You'll get consistent performance (even if it is likely sub-optimal) and you won't have to worry about hitting some rare STMM problem. Let me reiterate though, that if you find memory configuration easy, you are in the minority. I know from speaking with hundreds of customers that most of them find memory configuration challenging, and for them, STMM is welcome relief. I'm still looking into the specific issues that you encountered and will be in touch via email with any information I can dig up. Thanks, Adam |
#26
| |||
| |||
|
|
"Serge Rielau" <srie... (AT) ca (DOT) ibm.com> wrote in message news:88cl59Fv01U1 (AT) mid (DOT) individual.net... Mark, As you said yourself earlier defaults change (or rather: should change).. 90% may have been better in the past and the team has learned that 200%is better on average now. I don't think that 90% is wrong or right. What we are talking about here are best practices and best practices change as products change and as experience accumulates. I'm being told that not all the doc changes for the recent change from 90% to 200% have been rolled out yet and the doc team is working on it. But this is not a HIPER APAR. Your company will not go out of business because you are still, obviously successfully, using 90%. Cheers Serge -- Serge Rielau SQL Architect DB2 for LUW IBM Toronto Lab You are wrong on several fronts. When IBM released 9.5 and 9.7, 90% was unequivocally specified as the value to use for SHMALL Linux kernel parm. I provided proof of this in the PDF manuals (the 9.7 PDF manuals are not very old). 90% has apparently been discovered to not be appropriate, and now 200% is recommended (as of justa few months ago). This had nothing to do with DB2 code changes, it had to do with problems with STMM (I was told by an IBMer that this was particularly the case if a server had a lot of DB2 instances and was doing high volume production). The recommendation is retroactive to 9.5.0. You are claiming that 90% is neither right or wrong. But the 200% settingis now enforced in future fixpacks (already in 9.7.2 and maybe in 9.5.6), so that tells me that someone in IBM think 90% is wrong, although admittedly, not every customer is going to encounter a problem if their server has only one DB2 instance and is only moderately loaded or not using STMM. The only reason we are successfully using 90% is because we turned off STMM. So either the 90% is wrong, or STMM doesn't work correctly (or some combination of the two). My company suffered serious customer relations problems with several large customers because of STMM and memory problems in general, and I don't need you to tell me what happened, since you don't know a anything about it. Sounds to me you have working been on that Oracle compatibility code for so long that you are starting to sound just like Oracle. Maybe you should apply for a job with them. |
#27
| ||||
| ||||
|
|
It sounds like I may regret jumping in on this thread, but I'll just throw in some of the rationale behind this change in recommendation.... I'll start with some background on how DB2 uses shared memory, and then get to the whole 90% vs 200% recommendations. |
|
...This is where I'm confused by one of your other comments saying that STMM cannot reclaim this memory.... re-committing memory on UNIX is as simple as touching those memory pages again, there is no OS API that needs to be called (the OS just faults those pages in on demand), so as long as STMM sees enough free memory on the system, we should have no issue reclaiming that memory. I'm sure Adam will contact me when he digs up the info on this particular issue :-) Note that Windows is slightly different - we need to issue an OS API to re-commit memory there, so in that case, there is a chance that the OS will deny the request, but that should not happen on any UNIX platform. |
|
Now for the SHMALL recommendation.... We really wanted SHMALL to be set out of the way, but we were reluctant to recommend customers set that to a value greater than RAM. I would wager that most DBAs are probably not intimately aware with how the various OSes implement their virtual memory managers, so it would seem odd to recommend setting SHMALL larger than RAM (i.e. doesn't that mean it will cause paging?!). So, the recommendation was to set this to a value that is sufficiently large such that a single DB2 instance can use most of the memory on the box with no issues - the assumption being that the OS, file cache, etc will use up at least 10% of free memory on the box, so total committed memory by DB2 should never be greater than 90% of RAM. This recommendation was fine prior to 9.5, and should still be acceptable in most 9.5+ systems if STMM is not enabled. However, once STMM is enabled, we start monitoring free memory and will start shrinking our committed memory footprint (RAM) when needed, however, our shared memory segment footprint that is accounted for by SHMALL stays the same. Again, with a single DB2 instance on the box, the original 90% recommendation should still be fine, since we will favor re-committing that memory prior to creating new segments, so our total shared memory footprint should stay below the 90% SHMALL limit. However, this SHMALL recommendation breaks down as soon as there are multiple instances. Consider a simple scenario where one instance starts up with STMM enabled, and that instance sees plenty of free memory, so grows DB2's shared memory regions to account for, say, 75% of memory on the box. Now, a new DB2 instance starts up, again with STMM enabled. STMM will see this new memory pressure on the box, and start releasing RAM, but will still consume 75% of the SHMALL limit. If both instances have a fairly "equal" need for memory, the new instance would try to grow it's shared memory to account for 37.5% of memory on the box, however, since the first instance is already consuming 75% of the SHMALL limit, the second instance cannot grow that much, and will be limited to at most 15% of RAM on the box due to SHMALL. This is the main reason why the new 200% recommendation is coming in - we have to bite the bullet and recommend setting SHMALL larger than RAM so that customers with more than one instance on the box, where those instances' memory consumption is controlled primary by STMM (so will grow and shrink), are less likely to hit this limit. |
|
So, although far from perfect, the new 200% recommendation is to help ensure that a larger group of customers are not affected by how SHMALL interacts with STMM. The unfortunate part is that now that we recommend setting SHMALL larger than RAM, it raises more questions, so we now have to try to explain how SHMALL interacts with RAM on the box - details that most DBAs should not need to care about (as long as we're not causing pageing, of course!). From what I've heard, this same recommendation will be applied to all 9.5+ versions of the docs, it will just take some time to get those docs updated. Hope this helps clarify this situation.... Cheers, Liam. |
#28
| |||
| |||
|
#29
| |||
| |||
|
|
Mark, I think that is a valuable summary. While I disagree with your ninth point, you're certainly entitled to your opinion. My experience with hundreds of DB2 customers tells me that hard coded values will not work in 99% of cases, which is why we don't document any hard coded recommendations. Instead, we've tried hard with STMM to create a feature that works well for 100% of customers. Were we 100% successful with our first attempt? Has any software product ever been released entirely problem-free? No. This is why we're using subsequent fixpacks to fix all issues that have been reported by customers, such as yourself. Is STMM in the latest 9.5 and 9.7 fixpacks perfect? It would be foolish for me to claim that it is. That being said, the problems you mention above have been fixed, and should no longer be a cause for concern. From its inception, STMM has provided value for a great number of customers and it will continue to do so. Yes, there are/ were some "gotchas" when running STMM in its first few releases. We're hopeful however, that most of the serious problems have been resolved. Thanks, Adam |
#30
| |||
| |||
|
|
"ajst... (AT) ca (DOT) ibm.com" <ajst... (AT) gmail (DOT) com> wrote in message news:40152b40-fd96-4e17-afc3-390e684b6199 (AT) y4g2000yqy (DOT) googlegroups.com... Mark, I think that is a valuable summary. *While I disagree with your ninth point, you're certainly entitled to your opinion. *My experience with hundreds of DB2 customers tells me that hard coded values will not work in 99% of cases, which is why we don't document any hard coded recommendations. *Instead, we've tried hard with STMM to create a feature that works well for 100% of customers. *Were we 100% successful with our first attempt? *Has any software product ever been released entirely problem-free? *No. *This is why we're using subsequent fixpacks to fix all issues that have been reported by customers, such as yourself. Is STMM in the latest 9.5 and 9.7 fixpacks perfect? *It would be foolish for me to claim that it is. *That being said, the problems you mention above have been fixed, and should no longer be a cause for concern. *From its inception, STMM has provided value for a great number of customers and it will continue to do so. *Yes, there are/ were some "gotchas" when running STMM in its first few releases. We're hopeful however, that most of the serious problems have been resolved. Thanks, Adam DBA's have had to hard code values for those 4-5 memory heaps since 1990 (until recent releases of DB2 that had STMM), so I am not suggesting anything new. The defaults were way too low and were not changed via auto-configure on by default until after the decision was made to develop STMM (this is the catch-22). There has not been any documentation in the reference manuals for the last 20 years on what realistic values should be for those 4-5 memory heaps, which has been a problem for many customers, especially given that the defaults were so low. Just listing the default and range of possible values is not sufficient IMO. If you don't like my values, then a couple of different of scenarios (different types and sizes of databases) could have been discussed with different values for each scenario. It does not hurt to over allocate a little bit, since memory is cheap and plentiful these days and these setting use a very small amount of memory (with exception of bufferpools, which is a totally different subject). These memory allocations don't need to be perfect anyway, so long as the defaults are not used. |
|
It comes down to risk vs. reward. For a company without any competent DBA's, the benefit of STMM may outweigh the risk (especially if they don't have mission critical DB2 databases). For other companies, the opposite may be true. I don't understand why IBM is pushing so hard for everyone to use STMM when it may not be appropriate for every situation at the current time. |
![]() |
| Thread Tools | |
| Display Modes | |
| |