23.01.2013 Views

Lotus Domino Performance Tuning - IBM

Lotus Domino Performance Tuning - IBM

Lotus Domino Performance Tuning - IBM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

This document serves as the transcript to the <strong>Lotus</strong> Society Hong Kong Talk<br />

“<strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong>”. The transcript contains additional information not<br />

provided in the slide deck used.<br />

1.Overview<br />

The <strong>Domino</strong>7 <strong>Performance</strong> <strong>Tuning</strong> Guide has 160 pages, which is a tough call to<br />

summarize in this short talk. You can download the free guide here:<br />

http://www.redbooks.ibm.com/redpieces/abstracts/redp4182.html<br />

Figure 1 Dimensions of <strong>Performance</strong> <strong>Tuning</strong><br />

<strong>Tuning</strong> is not a sport or an dark art, it is rather a series of well defined steps to<br />

improve performance. Keep in mind: if you don't improve your current bottleneck<br />

your tuning step will not have any visible impact.<br />

Page 1/11


<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

Figure 2 <strong>Tuning</strong> Cycle<br />

Bottlenecks can be found anywhere, so careful analysis of your baseline data<br />

and your change results is needed.<br />

Page 2/11


Figure 3 Potential Bottlenecks<br />

<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

2.10 Steps to get started<br />

• Have a plan<br />

• Know your infrastructure<br />

• Break down components<br />

• Have a baseline as reference<br />

• Measure baseline and analysis over time<br />

• Estimate benefits vs. cost<br />

• Have a change management plan<br />

• Prepare a backout and recovery plan<br />

• Do only one thing at a time; isolate individual changes<br />

• Finally let your changes get hold and measure them over time<br />

Page 3/11


Figure 4 <strong>Tuning</strong> cycle<br />

3.Hardware<br />

<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

Your server layout can make a huge difference to your all over <strong>Domino</strong><br />

performance. You have to ensure, that you design the system for the intended<br />

load. Considerations have to be given to CPU, Memory, Network and data<br />

storage I/O capabilities.<br />

<strong>Domino</strong> distributes its tasks over the available CPUs, so multiple cores will<br />

benefit the performance. On big systems you can run multiple instances of<br />

<strong>Domino</strong> taking further advantage of CPU power.<br />

Page 4/11


<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

Figure 5 Network layout for <strong>Domino</strong> Domain<br />

You should keep your networks for server, internet, clustering and clients<br />

separate.<br />

Also storage should be distributed over more than one I/O channel. Fast disks<br />

Page 5/11


<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

also help. Typically you would have OS, Applications and data on different<br />

partitions. Data increasingly in a SAN.<br />

You can improve performance if you put I/O intensive applications (e.g. your<br />

corporate CRM or time tracking application on a separate disk with its own<br />

controller). Also having RAID1 disks with their own controller for transaction<br />

tracking helps.<br />

ReiserFS seems to be a good choice for the transaction log. The log is written in<br />

16KB blocks with is well supported.<br />

4.Operating Systems<br />

The more the operating system is busy with other things <strong>Domino</strong> performance<br />

suffers. Little oddities on Windows: if you minimize the <strong>Domino</strong> server window<br />

performance suffers.<br />

Task to do:<br />

• Disable all tasks you don't need<br />

• Keep your drives de-fragmented (or use a file system that doesn't needs<br />

defragmentation like Linux/Unix file systems)<br />

• Switch of the anti-virus scanning NSFs on access (they need to scan<br />

documents not NSF files)<br />

• No screen saver please (Switch of screen in the power settings)<br />

Keep an eye on memory limits (8.0.1 will do 64Bit, then this is gone)<br />

Figure 6 Default Memory Limits<br />

Page 6/11


5.Server Settings<br />

<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

There are settings on the server that impact performance. Some of them<br />

shouldn't be touched for the sake of security. Most prominently the Port<br />

encryption of the network port(s). Don't mess with them.<br />

Things to check:<br />

• Remove services not needed<br />

• How many replicators do you need (more can be better!)?<br />

• Enforce_Personal_Agents=1 to switch personal agents off<br />

• Check # of concurrent agents<br />

• Check the various Amgr_ variables for Notes.ini ---> be careful there!<br />

• Don't use HTTP logging if not needed<br />

• show stat domino.cache<br />

• Increase HTTP threads<br />

• UPDATE_FULLTEXT_THREAD=1<br />

• Multiple Server Mailboxes<br />

• Server_Session_Timeout<br />

• view_rebuild_dir=X:\pathname\<br />

• Switch off all network protocols but TCPIP<br />

• Consider a single NotesNamedNetwork<br />

•<br />

6.Database<br />

The key of database tuning measures can be found in the design of the<br />

database rather then in the parameters. However there are some settings that<br />

impact performance:<br />

Page 7/11


<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

Figure 7 <strong>Performance</strong> impacting settings<br />

• Unread marks<br />

• Document table map<br />

• Free space (compact often)<br />

• Response hierarchy<br />

7.Applications<br />

Application design is responsible for a lot of potentially bad performance. With<br />

some good will it is possible to kill the strongest <strong>Domino</strong> server. There are a<br />

number of considerations to speed things up.<br />

To get a full view what happens in a Notes client application you can switch on<br />

Page 8/11


<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

connection debugging in the Notes client.<br />

Things to do:<br />

• Replace @DBLookup/@DBcolumn with @GetProfilefield<br />

• Replace GetNthDocument with getNextDocument<br />

• Use ViewEntryCollections instead of NotesDocumentCollections<br />

• Don't run through NotesDatabase.AllDocuments<br />

• Don't do @Dblookup in ReadMode!<br />

• Remove @Now and @Today from views<br />

• Use single category views for ReaderName access<br />

• Use LIST in <strong>Lotus</strong>Script<br />

• Don't build large document collections<br />

• Don't Redim Preserve large arrays<br />

• Use Julian's StringBuffer class for string concatenation<br />

• replace db.search with NotesView.getAllDocumentsByKey<br />

• StampAll is fast<br />

• Remove script from your form globals<br />

Page 9/11


8.Measure!<br />

<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

Figure 8 Reporting and Monitoring<br />

Figure 9 Monitoring database<br />

Page 10/11


<strong>Lotus</strong> <strong>Domino</strong> <strong>Performance</strong> <strong>Tuning</strong><br />

Figure 10 Statrep is your friend!<br />

9.Web Resources<br />

http://www.ibm.com/developerworks/lotus/library/ls-Port_encryption/index.html<br />

http://www.ibm.com/developerworks/lotus/performance/<br />

http://www.redbooks.ibm.com/abstracts/sg245602.html<br />

http://www-1.ibm.com/support/docview.wss?rs=203&uid=swg27008523<br />

http://www-128.ibm.com/developerworks/lotus/library/ls-IO_subsystems/<br />

side1.html<br />

http://www-128.ibm.com/developerworks/lotus/library/ls-HTTP_Threads_settings/<br />

index.html<br />

http://searchdomino.techtarget.com/generic/0,295582,sid4_gci1270148,00.html<br />

http://www.redbooks.ibm.com/redpieces/abstracts/redp4182.html<br />

http://www-1.ibm.com/support/docview.wss?rs=0&uid=swg21174563<br />

http://www-1.ibm.com/support/docview.wss?rs=0&uid=swg21085205<br />

http://www-1.ibm.com/support/docview.wss?uid=swg21234550<br />

http://www-1.ibm.com/support/docview.wss?uid=swg21173877<br />

Page 11/11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!