SlideShare a Scribd company logo
Andrew Pollack, NCT
English is the only   language I speak -- Unless you count programming languages I will try to speak clearly, but if I am moving too quickly, or too slowly, please make some kind of sign, so I can adjust!
We will all point at you Set all noise making toys to “Stun” please If you need to type on a laptop or a Blackberry – move toward the back please
Administrator & Developer since version 2.0 Products NCT Search, NCT Compliance Search, and NCT Simple Sign On, and now Second Signal Services Site Performance Reviews Application Development Administrative Overhaul Security Review & Penetration Testing IBM Lotus Beacon Award Winner Firefighter  Lieutenant of Cumberland, Maine – Engine 1 In firefighting, just like Server Administration it's all in the planning
Performance with a Big Picture approach Defining Performance In User Terms Key Performance Choke Points General Considerations Common General Tweaks Application Specific Strategies Finding Your Own Choke Points Summary
A face lift may make you look better for a while, but it won’t cure cancer
No Single INI Variable --  #1 Server Fix Focus On The Basics! No Super Storage Network No Ultimate Network Switch No Omnipotent  Third Party Application No God-like Consultant Not Even Me!
Performance Problems Are like snowflakes Individually, they don’t matter much at all You notice them only once they stack up For example: Poorly Performing Disk I/O + Agents Changing Many Documents + Many Views to Update == Very Slow System These kinds of problems create a feedback loop, which amplifies the problems
It’s not how you feel, its how you look. Darling, you look marvelous! -- Billy Crystal
If the user must wait for something, it will always seem slow – no matter how fast you make it. Nothing is worse than an hourglass cursor and a bar slowly moving across the screen Except NOT having the bar
Move anything not immediately required by the user to a background process Cache Commonly Referenced Data Don’t pop-up modal dialog boxes * More on this when we talk about application  design in a few minutes!
We’re going the wrong way, but we’re making excellent time!
Bandwidth vs. Latency Bandwidth How big around is the pipe? Latency How long is the pipe from end to end? Even light takes several minutes to reach us from the Sun.  That’s latency Latency impacts “Chatty” connections – Notes can be chatty
Ping times larger than 100ms are “high” latency. WAN links, Satellite links, Modems, and VPN’s are all prone to latency issues Multi-Hop connections across buffered routers and firewalls can introduce latency Encryption software can introduce latency
Avoid opening and closing many documents Avoid DB Lookups by caching common values Example: Use a db open script to write common lookup values to a local environment variable each time the user opens the database Use “RunOnServer” to move complex agent work to the server, the read the result from a profile document
This is the #1, #2, and #3 Root performance problem on Domino Server Nearly any other performance problem is made many times worse if the Disk I/O is overwhelmed Most Domino Servers are not well optimized for Disk I/O
One “Data” drive is used for too much databases, index rebuilds, temporary files, swap files, and even transaction logging Transaction Logging used in conjunction with journaling file systems Poor choice of RAID configurations Too heavy a reliance on Storage Area Networks
Many of the following recommendations balance performance with safety You need to assess each as it relates to your overall data strategy
ALWAYS put your transaction logging files on a separate drive Move your view indexing temporary files to another drive (INI Parameter) Consider moving disk-intensive applications to their own drive If you must have memory swapping, give it its own drive Active Log Files
Things that load once and are not re-accessed frequently do not need to be on high performance resources The Operating System Application Program Files Archive Log Files
One Disk may have multiple partitions Different partitions are NOT different spindles All the partitions on the same drive, share the same read-write head and are impacted by data access as a single entity. Multiple drives in a RAID array don’t count A RAID array is treated by the system as a single drive.  By definition, data is written across the whole array The “Best-Case” is multiple drives on different drive controllers
Most RAID arrays are configured to improve redundancy, not necessarily speed. Not all data requires redundancy Loss of some data is very low risk Memory Swap Files Indexing scratch space Temporary files Cache files Inexpensive SATA drives can be used for a real performance gain Solid State Drives – Possible future use for very high speed, relatively small footprint data, like transaction logging
Consider the benefits of a SAN Highly redundant storage Single backup point Consolidated free space Performance? I have yet to see a SAN that truly outperforms local high speed disks Not all Domino Data needs these features Transaction Logs – Consider local RAID if possible Indexing Scratch Space – Use Cheap, Local, Fast Drives If you’re already clustering Domino, only one of the clustered machines may need to be on the SAN
Windows NTFS – And you can’t turn it off! Linux ext3 file system IBM AIX, SUN Solaris, and Apple OSX all make use of Journaling File Systems Not all the same – but generally speaking, disk WRITES are doubled Don’t put Transaction Logs on Journaling File Systems – its redundant, and redundant again.
RAID Configuration Data is written twice (at least) Formatted with a JFS Data is written twice Using Transaction Logging Data is written twice 2 x 2 x 2 = 8 Times the Data Writes Now think about that on a pair of clustered servers
These should be obvious More RAM is better – Up to what is supported Depending on the OS, you may need to partition your server to take full advantage Drive Cache – If your OS lets you manage it, you should work to really optimize this Most Anti-Virus Software is EVIL when it runs against Domino Databases Make sure your AV is Domino aware!
Developers really LOVE when administrators give them feedback like this
Why are you using “NoCache”? Cache times are very small, does your data really change on a second by second basis? Can be very chatty – a killer on high latency networks, but not as bad for web apps Requires more views to be up to date – big performance hit in databases that change a lot Many lookups on the same form, to the same place for different values? Use it once to get the UNID, then use @GetDocValue Use a profile document, or local environment variables updated in the dbopen script to store commonly looked up data
For application performance tuning, views are the first, second, and third place to look View indexing is very disk intensive – and can amplify disk I/O shortcommings To update a view, a full database scan often needs to happen.  That can be very very slow on large databases Any view performance problem grows exponentially with the volume of data These problems are often not caught in test
If your view column (bad) or selection formula (worse) uses @Now, @Today, etc.. You’re hurting performance Time dependant views are “Always” considered out of date and must be re-indexed for every use If you’ve got one, you’ve got more.  Developers that do this tend to repeat the pattern
Use a FOLDER instead Run a agent to select the right documents for the folder on a periodic basis – Daily for “@Today” or Hourly for @Hour(@Now), etc. This will still cause an update, but only once each time the update happens Use Categories Categorize documents based on a stored date value, then use a “show single category” option on the view If you MUST use a time specific view, set its update frequency to the absolute least frequent you can It will still update for each user access, however, unlike a folder which is static
Consider a column formula with 10 steps Now consider 100,000 Documents in it That column must execute 1 Million steps for each view index rebuild – just in that column Many column formulas are much more complex, and serve many times that many documents
Create Hidden Fields on the Document At “Save” time, compute the value that would be on the view column in the hidden fields Display the value of the hidden field as the view column formula.  What was a complex formula executing hundreds of thousands of times is now a single field value
Consider a database with 100,000 documents Consider that database having 10 views Consider each view having 5 columns Each time data in the database is updated, every selection formula has to be checked to see if the view is impacted Every view has to be updated by the indexer
Embed The View on a Form or Frameset Categorize the view in the same way you woul distinguish the different views Use Show Single Category to differentiate the data to the user Compute text values on the form to result in very different data in each category if needed Use multi-column hidden views so that he same view can serve multiple lookup needs Make sure your developers coordinate so that duplicate lookup views are not created
 
Calculate and Store a HASH value  A HASH is a short, nearly unique, value crated by applying a mathematical formula to a set of data.  For example, you can hash an entire paragraph and get a short string as a hash value.  The same source will always produce the same hash, but any change to the source will produce a different hash. You can tell if a document has changed, simply by comparing the HASH value
Andrew’s Magic Hash story If you fall asleep, please don’t drool on the table C’mon, it’s a true story!
Read View Entries – Not Documents Turn off view updating while working with documents in the agent NotesDatabase.Delayupdates=True Turn off MIME conversion when working with mail documents NotesSession.ConvertMime=False Run agents periodically, not “Before New Mail Arrives” – that slows down the router
Placing blame, for fun and profit!
Look for Disk Performance First Start Simple:  Are the drive lights sitting on for long periods of time?  Use the operating system’s tools Performance monitor in Windows, “top” in Linux, etc. Processes like “logasio” which is for transaction logging will show up Check for network latency and bandwidth Start Simple:  Use Ping to check latency Use Domino’s DDM and Statistics tools See Gabriella Davis’s current and past sessions on these tools
Admit it – you really came here looking for  cool INI settings like DominoRunFaster=11
Here’s some that I use MailLeaveSessionsOpen=1 For busy mail servers, can speed up delivery Update_Fulltext_Thread=1 Move full text indexing to its own thread, distinct from the indexer – This is the costs to “runfaster” I have found Ftg_use_sys_memory=1 Use memory outside the Domino server HttpQueueMethod=2 According to Kerr, this is a must have for busy web servers Use These Together: SERVER_NAME_LOOKUP_NO_UPDATE=1 Tells the server to use the old index while the new one catches up DEBUG_ENABLE_UPDATE_FIX=8191 Fine tunes when the directory indexes get refreshed
NSF_Buffer_Pool_Size_MB= Very powerful, but very complex Check the Lotus Notes Knowledge base Starts at around 300 Not as critical as it used to be Check your success with this console command show stat database.database.b* Don’t check too soon after a change, its only valid over time
Open this folder: {NotesProgramDirectory}  \framework \rcp \eclipse \plugins \com.ibm.rcp.j2se .{Version} Edit the file: jvm.properties Change the line: vmarg.Xmx=-Xmx256m So that it reads: vmarg.Xmx=-Xmx512m Note: You can set it higher, but aim for about half of your available RAM Readers on my blog overwhelmingly report fantastic results with this one
Repeat After me: There is No “RUN_FASTER=1” Performance Isn’t Magic, its Planning Save the Disk I/O, Save the Server Latency is as critical as Bandwidth When in doubt, Blame the developer

More Related Content

PPTX
Web Hosting - Web Hosting Curriculum [1/10]
PPTX
Selling Web Hosting - Web Hosting Curriculum [10/10]
PPT
Design principles of scalable, distributed systems
PPT
Managing Performance in a Virtual Environment
PPTX
Establishing Environment Best Practices T12 Brendan Law
PPTX
Roman Rehak: 24/7 Database Administration + Database Mail Unleashed
PPSX
Disaster Recovery
PPTX
Dba101
Web Hosting - Web Hosting Curriculum [1/10]
Selling Web Hosting - Web Hosting Curriculum [10/10]
Design principles of scalable, distributed systems
Managing Performance in a Virtual Environment
Establishing Environment Best Practices T12 Brendan Law
Roman Rehak: 24/7 Database Administration + Database Mail Unleashed
Disaster Recovery
Dba101

Viewers also liked (19)

PDF
Fixing Domino Server Sickness
PDF
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
PDF
IBM Traveler Management, Security and Performance
PDF
A Technical Guide To Deploying Single Sign On
PDF
The SSL Problem and How to Deploy SHA2 Certificates
PDF
Working With Sametime For Mobile Devices
PDF
Domino Adminblast
PDF
Simplifying The S's: Single Sign-On, SPNEGO and SAML
PDF
Upgrading to Sametime 9.0.1
PDF
Domino in the Back, Party In The Front
PDF
Lotusphere 2007 AD405 -Increase yourIBM Lotus Notes Application ROI through C...
PPT
Realizacja przez Konsorcjum: Arcus/Action/APN Promise projektu RSIM
PDF
Search engine for finance and banking syndacast
PPT
Slavery Wilberforce
PDF
Fgv Workshop Ir Brazil Awards 2009
PPS
Malaikatku
PPS
Ruh buluşması-CAN DÜNDAR
PPT
3rd Quarter Research Project
Fixing Domino Server Sickness
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
IBM Traveler Management, Security and Performance
A Technical Guide To Deploying Single Sign On
The SSL Problem and How to Deploy SHA2 Certificates
Working With Sametime For Mobile Devices
Domino Adminblast
Simplifying The S's: Single Sign-On, SPNEGO and SAML
Upgrading to Sametime 9.0.1
Domino in the Back, Party In The Front
Lotusphere 2007 AD405 -Increase yourIBM Lotus Notes Application ROI through C...
Realizacja przez Konsorcjum: Arcus/Action/APN Promise projektu RSIM
Search engine for finance and banking syndacast
Slavery Wilberforce
Fgv Workshop Ir Brazil Awards 2009
Malaikatku
Ruh buluşması-CAN DÜNDAR
3rd Quarter Research Project
Ad

Similar to Domino server and application performance in the real world (20)

PPT
scale_perf_best_practices
PPT
Apache Con 2008 Top 10 Mistakes
PPT
Top 10 Scalability Mistakes
ODP
Front Range PHP NoSQL Databases
PPS
Web20expo Scalable Web Arch
PPS
Web20expo Scalable Web Arch
PPS
Web20expo Scalable Web Arch
PPS
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
PPT
Supporting SQLserver
PPTX
Handling Data in Mega Scale Systems
PPS
Beyond the File System - Designing Large Scale File Storage and Serving
PPS
Filesystems
PPT
UnConference for Georgia Southern Computer Science March 31, 2015
PPT
7 Stages of Scaling Web Applications
PDF
Dipping Your Toes: Azure Data Lake for DBAs
PDF
Anurag Gupta's talk on DevOps at AWS. Nov 17 at the Palo Alto AWS Big Data Me...
PPT
Building High Performance MySQL Query Systems and Analytic Applications
PPT
Building High Performance MySql Query Systems And Analytic Applications
PPT
FOWA Scaling The Lamp Stack Workshop
PPT
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
scale_perf_best_practices
Apache Con 2008 Top 10 Mistakes
Top 10 Scalability Mistakes
Front Range PHP NoSQL Databases
Web20expo Scalable Web Arch
Web20expo Scalable Web Arch
Web20expo Scalable Web Arch
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Supporting SQLserver
Handling Data in Mega Scale Systems
Beyond the File System - Designing Large Scale File Storage and Serving
Filesystems
UnConference for Georgia Southern Computer Science March 31, 2015
7 Stages of Scaling Web Applications
Dipping Your Toes: Azure Data Lake for DBAs
Anurag Gupta's talk on DevOps at AWS. Nov 17 at the Palo Alto AWS Big Data Me...
Building High Performance MySQL Query Systems and Analytic Applications
Building High Performance MySql Query Systems And Analytic Applications
FOWA Scaling The Lamp Stack Workshop
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Ad

More from dominion (20)

PDF
What is a itil and how does it relate to your collaborative environment uklug
PDF
iOS enterprise
PDF
cloud session uklug
ODP
Uklug 2011 administrator development synergy
PDF
Uklug 2011 client management
PDF
JavaScript blast
PDF
Populating your domino directory or any domino database with tivoli directory...
ODP
Uklug2011 Know your Notes
ODP
Quickr
ODP
Taking themes to the next level
ODP
Supersize me
ODP
Aussie outback
PDF
Learning to run
PPT
Implementing xpages extension library
PDF
Abb presentation uklug
PDF
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
PPT
Domino testing presentation
PDF
Composite applications tutorial
PDF
Maximizing application performance
PDF
Error handling in XPages
What is a itil and how does it relate to your collaborative environment uklug
iOS enterprise
cloud session uklug
Uklug 2011 administrator development synergy
Uklug 2011 client management
JavaScript blast
Populating your domino directory or any domino database with tivoli directory...
Uklug2011 Know your Notes
Quickr
Taking themes to the next level
Supersize me
Aussie outback
Learning to run
Implementing xpages extension library
Abb presentation uklug
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Domino testing presentation
Composite applications tutorial
Maximizing application performance
Error handling in XPages

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Encapsulation theory and applications.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
Teaching material agriculture food technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Spectroscopy.pptx food analysis technology
DOCX
The AUB Centre for AI in Media Proposal.docx
Empathic Computing: Creating Shared Understanding
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Encapsulation_ Review paper, used for researhc scholars
sap open course for s4hana steps from ECC to s4
Diabetes mellitus diagnosis method based random forest with bat algorithm
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Encapsulation theory and applications.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Machine learning based COVID-19 study performance prediction
Understanding_Digital_Forensics_Presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity
Spectroscopy.pptx food analysis technology
The AUB Centre for AI in Media Proposal.docx

Domino server and application performance in the real world

  • 2. English is the only language I speak -- Unless you count programming languages I will try to speak clearly, but if I am moving too quickly, or too slowly, please make some kind of sign, so I can adjust!
  • 3. We will all point at you Set all noise making toys to “Stun” please If you need to type on a laptop or a Blackberry – move toward the back please
  • 4. Administrator & Developer since version 2.0 Products NCT Search, NCT Compliance Search, and NCT Simple Sign On, and now Second Signal Services Site Performance Reviews Application Development Administrative Overhaul Security Review & Penetration Testing IBM Lotus Beacon Award Winner Firefighter Lieutenant of Cumberland, Maine – Engine 1 In firefighting, just like Server Administration it's all in the planning
  • 5. Performance with a Big Picture approach Defining Performance In User Terms Key Performance Choke Points General Considerations Common General Tweaks Application Specific Strategies Finding Your Own Choke Points Summary
  • 6. A face lift may make you look better for a while, but it won’t cure cancer
  • 7. No Single INI Variable -- #1 Server Fix Focus On The Basics! No Super Storage Network No Ultimate Network Switch No Omnipotent Third Party Application No God-like Consultant Not Even Me!
  • 8. Performance Problems Are like snowflakes Individually, they don’t matter much at all You notice them only once they stack up For example: Poorly Performing Disk I/O + Agents Changing Many Documents + Many Views to Update == Very Slow System These kinds of problems create a feedback loop, which amplifies the problems
  • 9. It’s not how you feel, its how you look. Darling, you look marvelous! -- Billy Crystal
  • 10. If the user must wait for something, it will always seem slow – no matter how fast you make it. Nothing is worse than an hourglass cursor and a bar slowly moving across the screen Except NOT having the bar
  • 11. Move anything not immediately required by the user to a background process Cache Commonly Referenced Data Don’t pop-up modal dialog boxes * More on this when we talk about application design in a few minutes!
  • 12. We’re going the wrong way, but we’re making excellent time!
  • 13. Bandwidth vs. Latency Bandwidth How big around is the pipe? Latency How long is the pipe from end to end? Even light takes several minutes to reach us from the Sun. That’s latency Latency impacts “Chatty” connections – Notes can be chatty
  • 14. Ping times larger than 100ms are “high” latency. WAN links, Satellite links, Modems, and VPN’s are all prone to latency issues Multi-Hop connections across buffered routers and firewalls can introduce latency Encryption software can introduce latency
  • 15. Avoid opening and closing many documents Avoid DB Lookups by caching common values Example: Use a db open script to write common lookup values to a local environment variable each time the user opens the database Use “RunOnServer” to move complex agent work to the server, the read the result from a profile document
  • 16. This is the #1, #2, and #3 Root performance problem on Domino Server Nearly any other performance problem is made many times worse if the Disk I/O is overwhelmed Most Domino Servers are not well optimized for Disk I/O
  • 17. One “Data” drive is used for too much databases, index rebuilds, temporary files, swap files, and even transaction logging Transaction Logging used in conjunction with journaling file systems Poor choice of RAID configurations Too heavy a reliance on Storage Area Networks
  • 18. Many of the following recommendations balance performance with safety You need to assess each as it relates to your overall data strategy
  • 19. ALWAYS put your transaction logging files on a separate drive Move your view indexing temporary files to another drive (INI Parameter) Consider moving disk-intensive applications to their own drive If you must have memory swapping, give it its own drive Active Log Files
  • 20. Things that load once and are not re-accessed frequently do not need to be on high performance resources The Operating System Application Program Files Archive Log Files
  • 21. One Disk may have multiple partitions Different partitions are NOT different spindles All the partitions on the same drive, share the same read-write head and are impacted by data access as a single entity. Multiple drives in a RAID array don’t count A RAID array is treated by the system as a single drive. By definition, data is written across the whole array The “Best-Case” is multiple drives on different drive controllers
  • 22. Most RAID arrays are configured to improve redundancy, not necessarily speed. Not all data requires redundancy Loss of some data is very low risk Memory Swap Files Indexing scratch space Temporary files Cache files Inexpensive SATA drives can be used for a real performance gain Solid State Drives – Possible future use for very high speed, relatively small footprint data, like transaction logging
  • 23. Consider the benefits of a SAN Highly redundant storage Single backup point Consolidated free space Performance? I have yet to see a SAN that truly outperforms local high speed disks Not all Domino Data needs these features Transaction Logs – Consider local RAID if possible Indexing Scratch Space – Use Cheap, Local, Fast Drives If you’re already clustering Domino, only one of the clustered machines may need to be on the SAN
  • 24. Windows NTFS – And you can’t turn it off! Linux ext3 file system IBM AIX, SUN Solaris, and Apple OSX all make use of Journaling File Systems Not all the same – but generally speaking, disk WRITES are doubled Don’t put Transaction Logs on Journaling File Systems – its redundant, and redundant again.
  • 25. RAID Configuration Data is written twice (at least) Formatted with a JFS Data is written twice Using Transaction Logging Data is written twice 2 x 2 x 2 = 8 Times the Data Writes Now think about that on a pair of clustered servers
  • 26. These should be obvious More RAM is better – Up to what is supported Depending on the OS, you may need to partition your server to take full advantage Drive Cache – If your OS lets you manage it, you should work to really optimize this Most Anti-Virus Software is EVIL when it runs against Domino Databases Make sure your AV is Domino aware!
  • 27. Developers really LOVE when administrators give them feedback like this
  • 28. Why are you using “NoCache”? Cache times are very small, does your data really change on a second by second basis? Can be very chatty – a killer on high latency networks, but not as bad for web apps Requires more views to be up to date – big performance hit in databases that change a lot Many lookups on the same form, to the same place for different values? Use it once to get the UNID, then use @GetDocValue Use a profile document, or local environment variables updated in the dbopen script to store commonly looked up data
  • 29. For application performance tuning, views are the first, second, and third place to look View indexing is very disk intensive – and can amplify disk I/O shortcommings To update a view, a full database scan often needs to happen. That can be very very slow on large databases Any view performance problem grows exponentially with the volume of data These problems are often not caught in test
  • 30. If your view column (bad) or selection formula (worse) uses @Now, @Today, etc.. You’re hurting performance Time dependant views are “Always” considered out of date and must be re-indexed for every use If you’ve got one, you’ve got more. Developers that do this tend to repeat the pattern
  • 31. Use a FOLDER instead Run a agent to select the right documents for the folder on a periodic basis – Daily for “@Today” or Hourly for @Hour(@Now), etc. This will still cause an update, but only once each time the update happens Use Categories Categorize documents based on a stored date value, then use a “show single category” option on the view If you MUST use a time specific view, set its update frequency to the absolute least frequent you can It will still update for each user access, however, unlike a folder which is static
  • 32. Consider a column formula with 10 steps Now consider 100,000 Documents in it That column must execute 1 Million steps for each view index rebuild – just in that column Many column formulas are much more complex, and serve many times that many documents
  • 33. Create Hidden Fields on the Document At “Save” time, compute the value that would be on the view column in the hidden fields Display the value of the hidden field as the view column formula. What was a complex formula executing hundreds of thousands of times is now a single field value
  • 34. Consider a database with 100,000 documents Consider that database having 10 views Consider each view having 5 columns Each time data in the database is updated, every selection formula has to be checked to see if the view is impacted Every view has to be updated by the indexer
  • 35. Embed The View on a Form or Frameset Categorize the view in the same way you woul distinguish the different views Use Show Single Category to differentiate the data to the user Compute text values on the form to result in very different data in each category if needed Use multi-column hidden views so that he same view can serve multiple lookup needs Make sure your developers coordinate so that duplicate lookup views are not created
  • 36.  
  • 37. Calculate and Store a HASH value A HASH is a short, nearly unique, value crated by applying a mathematical formula to a set of data. For example, you can hash an entire paragraph and get a short string as a hash value. The same source will always produce the same hash, but any change to the source will produce a different hash. You can tell if a document has changed, simply by comparing the HASH value
  • 38. Andrew’s Magic Hash story If you fall asleep, please don’t drool on the table C’mon, it’s a true story!
  • 39. Read View Entries – Not Documents Turn off view updating while working with documents in the agent NotesDatabase.Delayupdates=True Turn off MIME conversion when working with mail documents NotesSession.ConvertMime=False Run agents periodically, not “Before New Mail Arrives” – that slows down the router
  • 40. Placing blame, for fun and profit!
  • 41. Look for Disk Performance First Start Simple: Are the drive lights sitting on for long periods of time? Use the operating system’s tools Performance monitor in Windows, “top” in Linux, etc. Processes like “logasio” which is for transaction logging will show up Check for network latency and bandwidth Start Simple: Use Ping to check latency Use Domino’s DDM and Statistics tools See Gabriella Davis’s current and past sessions on these tools
  • 42. Admit it – you really came here looking for cool INI settings like DominoRunFaster=11
  • 43. Here’s some that I use MailLeaveSessionsOpen=1 For busy mail servers, can speed up delivery Update_Fulltext_Thread=1 Move full text indexing to its own thread, distinct from the indexer – This is the costs to “runfaster” I have found Ftg_use_sys_memory=1 Use memory outside the Domino server HttpQueueMethod=2 According to Kerr, this is a must have for busy web servers Use These Together: SERVER_NAME_LOOKUP_NO_UPDATE=1 Tells the server to use the old index while the new one catches up DEBUG_ENABLE_UPDATE_FIX=8191 Fine tunes when the directory indexes get refreshed
  • 44. NSF_Buffer_Pool_Size_MB= Very powerful, but very complex Check the Lotus Notes Knowledge base Starts at around 300 Not as critical as it used to be Check your success with this console command show stat database.database.b* Don’t check too soon after a change, its only valid over time
  • 45. Open this folder: {NotesProgramDirectory} \framework \rcp \eclipse \plugins \com.ibm.rcp.j2se .{Version} Edit the file: jvm.properties Change the line: vmarg.Xmx=-Xmx256m So that it reads: vmarg.Xmx=-Xmx512m Note: You can set it higher, but aim for about half of your available RAM Readers on my blog overwhelmingly report fantastic results with this one
  • 46. Repeat After me: There is No “RUN_FASTER=1” Performance Isn’t Magic, its Planning Save the Disk I/O, Save the Server Latency is as critical as Bandwidth When in doubt, Blame the developer