SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Back from the Dead:
When Bad Code Kills a Good Server
Serdar Basegmez - Developi - @serdar_basegmez
William Malchisky Jr. - ESS - @BillMalchisky
Our Story in Forty-five Minutes
• Preface
• Chapter I - The Beginning
• Chapter 2 - Searching for Clues
• Chapter 3 - Creating a Solid Platform
• Chapter 4 - The Softside of Performance Gains
• The Final Chapter - Results
2
Disclaimer
"Ladies and Gentlemen. The story you are about to see is true; the
names have been changed to protect the innocent." --Dragnet
3
Disclaimer
"Ladies and Gentlemen. The story you are about to see is true; the
names have been changed to protect the innocent." --Dragnet
For example... Acme Corporation is now referred to as Acme, Inc.
4
Setting Expectations
• What we will cover
• Problem analysis
• Troubleshooting skills
• Best practices
• The performance impact of suboptimal applications
• What we omitted
• Boring, rambling, dry, lectures
• Useless drivel
5
Our Story in Forty-five Minutes
• Preface
• Chapter I - The Beginning
• Chapter 2 - Searching for Clues
• Chapter 3 - Creating a Solid Platform
• Chapter 4 - The Softside of Performance Gains
• The Final Chapter - Results
6
Customer Calls
• "We're having a problem. Can you help?"
• "Absolutely. What's happening?"
• "Our mission critical DB is really $%&@#$^& our users. It's way too
slow. It takes less time to reboot [Windows 3.1 on an i386 with 32MB
RAM] than to open a document."
• "Any idea what changed?"
• "We don't know. We have not touched the box."
7
Why Domino Servers Fail?
• Lack of expertise and/or knowledge
• Unplanned and/or unexpected expansion
• No dedicated Administrator
• No change management
• No monitoring
• Workaround overloading
8
Our Story in Forty-five Minutes
• Preface
• Chapter I - The Beginning
• Chapter 2 - Searching for Clues
• Chapter 3 - Creating a Solid Platform
• Chapter 4 - The Softside of Performance Gains
• The Final Chapter - Results
9
"Round Up the Usual Suspects"
• While waiting for access, request the following
• Helps establish the level of criticality
10
notes.ini log.nsf
sh tasks top
vmstat iosys
df -h Affected user(s) to server ping results
mount swapon -s
Server NAB DB copy, sans users
Data, Data Everywhere
• Ran DCT - returned a few items, but nothing applicable to the
performance issue experienced
• Checked Domino stats
• Located a key issue - needle in haystack
• SAI fluctuated wildly, frequently, plummeting to 18% for minutes on
end
• Locate any recent NSD files for analysis
11
Quick Example - iostat, vmstat
malchw@san-domino:~$ iostat
Linux 3.13.0-83-generic (san-domino) 03/23/2016 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
6.21 0.25 3.69 0.51 0.00 89.34
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 45.34 2075.44 778.25 6028264 2260469
sdb 0.36 1.52 0.03 4422 80
dm-0 24.51 117.04 186.80 339957 542584
dm-1 16.17 415.61 79.82 1207173 231836
dm-2 17.64 1540.92 511.61 4475713 1485996


malchw@san-domino:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 16943764 153144 7941660 0 0 262 98 144 681 6 4 89 1 0
12
Pro Tip on Data Collection
• Watch the server when nobody else does
• Lots of strange things happen on servers overnight
• Observed the system processing over one million records in :15
twice a week, at different times
Example: no one at Acme, Inc. knew this occurred or why
13
Initial Data Analysis - OS
• Swap space 50% of installed memory
• Memory was under 1GB for mission critical server
Several key DBs contained 100k+ docs
• Combination created page faulting plague further eroding
performance
• System properly patched
• Free space adequate
14
Initial Data Analysis - Notes.ini
• Obvious but important data points
• Server layout
• Where items located
• Recognized server.id file
• Server tasks
Contrast to sh tasks requested earlier
• No obvious problems
15
Initial Data Analysis - Amgr
• Agents running all hours of the night and day
• Agents running from DBs actively being compacted
• Agents running from DBs when updall and fixup running
• Not all scheduled agents needed to run all weekend
16
Initial Data Analysis - Log.sf
• Compact still running when updall Program fires-off
• Compact never finished before execution time ceiling hit
Left largest DBs in a completely suboptimal state
• Connected to servers that did not exist
• Scheduled replication documents
• Significant delays with replica synchronization
• Ensured data never properly synchronized across domain
• Certain connection documents only covered two DBs
17
Initial Data Analysis - DBs
• Several big DBs last fixup completed two years ago
• Most heavily used files 30-75% Used
• Many views means clicking one forces a new index build
• No design, document, or attachment compression
• Design server task citing non-existent templates
18
Our Story in Forty-five Minutes
• Preface
• Chapter I - The Beginning
• Chapter 2 - Searching for Clues
• Chapter 3 - Creating a Solid Platform
• Chapter 4 - The Softside of Performance Gains
• The Final Chapter - Results
19
Tier 1 - OS
• Swap space - No set rule these days
1.5x - 2.0x RAM is good rule of thumb
• Memory - 4GB per processor on busy servers
• VMware settings if available
Avoid temptation of too many processors
• Review partitions and free space
20
Additional OS Considerations
• Check that previous made system changes stick
Unfamiliar servers can exhibit odd behavior
• Check IBM Technotes for any recent performance issues
• Once OS is working, check to ensure that virtualization is optimal
21
Tier 2 - Domino
• Space properly Program Documents
Avoid overlap with agents and other Programs
• Pause agent schedule during maintenance
• Schedule a weekend to complete first full maintenance set
First full compact will take much longer than you realize
• Create maintenance schedule of tasks agreed to by business line
managers
Ensures all needed jobs are available when needed
22
Additional Items to Fix
• Review all enabled Domino features to ensure that they function
properly
• Simple configuration miscues can impact negatively
• Cluster replication unable to locate a cluster member
• DNS errors create lookup delays
• Remove unneeded, deprecated network ports
23
Our Story in Forty-five Minutes
• Preface
• Chapter I - The Beginning
• Chapter 2 - Searching for Clues
• Chapter 3 - Creating a Solid Platform
• Chapter 4 - The Softside of Performance Gains
• The Final Chapter - Results
24
Where are We?
• Domino Admin handled the first level treatment
• Server performs well, but not good enough
• Triangulated the issue to a mission-critical application
• Now what?
25
Why Domino Apps Fail?
• Lack of expertise and/or knowledge
• Developers evolved from power users
• Architecture overloading
• Unplanned and/or unexpected expansion
• Undocumented code and/or business process
• No change management
• Quick & dirty development
26
Developers vs Performance Issues
• There is no magic pill for finding a performance issue
• Many problems are circumstantial
Depends on who/when/how…
• Repeating the problem on a controlled environment
• Need for Proof!
• The most difficult part of the task
• Need to be systematical
27
Science Just Works!
• Research and Assessment,
• Speculation for fixes,
• Experiment,
• Prove!
28
http://www.wired.com/2013/04/whats-wrong-with-the-scientific-method/
Methodology
29
Research
Symptoms (e.g. logs, performance data, etc.)
Story (e.g. user input)
Application code
Hypothesis
Speculation on possible reasons
Search for ‘Usual Suspects’
Experiment Testing for possible reasons
Analyze Check symptoms if fixed
Conclusion Issue validated and proved to be fixed.
Research & Assessment
• What to collect, based on the symptom;
• CPU/memory load, hangs, spikes, crashes, etc.
• All the time, the same time everyday or random?
• Experienced by specific users?
• We are looking for a pattern between incidents.
30
Data Collection Checklist
Log/NSD/Semaphore files
Server configuration (inc. notes.ini)
Server monitoring and statistics data
Web logs (for web application issues)
XPages and OSGi logs (for XPages specific issues)
Application and dependencies
31
Isolate the Application
• Sometimes, even opening in DDE may cause issues!
e.g. XPages components are automatically built
• Application code might have side effects
e.g. Updating on another data source, adding audit logs,
performance degradation on the server, etc.
• There will be dependencies
• Once isolated, we can start inspection…
32
Usual Suspects
• Database corruptions
• @Today/@Now in views
• Code snippets acting like an admin
Updating views, replicating databases, running server commands
• Code snippets using the worst practices
Search in a large database, wrong looping, etc.
• Anything that fits into the pattern if there is one
e.g. An agent matching the incident timing
33
Nothing yet?
Digging deeper!
Team Up!
• Deeper investigation needs a teaming effort
• Admins and Developers should collaborate
• A test setup to simulate the production environment
• Intensive / Controlled debugging sessions in limited time windows
• Sharing expertise
• Experimenting on production should be the last resort
• Once a repeatable error found, cooperate for a solution
35
Examples
Example Case - Analysis
• JVM Crash with the HTTP task
• Random times
• No pattern in the log
• Memory dumps point a leak in the JVM Heap
• Inspected XPages applications, nothing found
• Triangulated the problem into one XPages app, following clues in
intensive debugging on memory
• Isolated the application for a load test, nothing found
• Increased logging, to collect more data, no hope!
37
Example Case - Resolution
• Checked the server configuration and noticed
• Logging data incomplete
• Removed exclusions
• New logs pointed the problem:
• Searching software crawling a specific page
• Page generates state data and fills up the
memory
• Simulated the same crash on the test environment
• One line of code fixed the issue
38
Another Case - Analysis
• A mission critical application at a bank
• Web application with 2000+ users
• CPU spikes and random hangs, mostly afternoon
• Logs are clear, no crashes, no error messages
• Isolated the application, inspected the ‘usual suspects’
• Found a web agent updating a view!
• Triangulated the problem using web logs and SEMDEBUG
• But, cannot validate the issue on the test environment…
39
Another Case - Resolution
• Cooperated with the Domino Admin
• Detailed assessment on the server configuration
• We found the issue!
• “ServerTasksAt14” running an updall task.
• Another Program file running Updall on a specific database, every
30 minutes
• Applied to the test platform, validated by a load test
• Problem solved!
40
Our Story in Forty-five Minutes
• Preface
• Chapter I - The Beginning
• Chapter 2 - Searching for Clues
• Chapter 3 - Creating a Solid Platform
• Chapter 4 - The Softside of Performance Gains
• The Final Chapter - Results
41
Quality Analysis Yields Quality Results
• Page faults reduced to zero
• General DB usage and administration tasks work well
• SAI now over 80%
• Weird overnight (agent) system operations resolved
• Key DBs have 93% used space now
• All DBs compressed: design, documents, all attachments
• Program documents, agents all adjusted: finish, no overlap
42
Note on Performance
43
When done properly, few users tend to
notice the change, but if removed they will
all complain
Teamwork vs. Performance
Neither an admin nor a developer
could solve all of these issues alone!
44
Bonus Slide
• You can get help inspecting
applications and servers
• teamstudio also sponsored
ICON UK!
45
cooperteam MartinScott
teamstudio Ytria
Serdar Başeğmez
• IBM Champion (2011 - 2016)
• Developi Information Systems, Istanbul
• Contributing…
OpenNTF / LUGTR / LotusNotus.com
• Featured on…
Engage UG, IBM Connect, ICON UK, NotesIn9…
• Also…
Blogger and Podcaster on Scientific Skepticism
46
William Malchisky Jr.
• IBM Champion (2011 - 2016)
• Effective Software Solutions, LLC
• Co-founder of Linuxfest at Lotusphere/Connect
• Speaker at 25+ Lotus/IBM related events/LUGs
• Co-authored two IBM Redbooks
• Co-wrote the IBM Education Administration track for
Domino 8.5
47
Follow Up - Contact Information
48
Serdar Basegmez
serdar.basegmez@developi.com
@serdar_basegmez
Skype: sbasegmez
Blog: lotusnotus.com
Bill Malchisky Jr.
william.malchisky@effectivesoftware.com
@billmalchisky
Skype: FairTaxBill
Blog: billmal.com
Questions and Answers

Más contenido relacionado

La actualidad más candente

Migration from 5 to Connections 6 - been there, done that
Migration from 5 to Connections 6 - been there, done thatMigration from 5 to Connections 6 - been there, done that
Migration from 5 to Connections 6 - been there, done thatSharon James
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Christoph Adler
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationDBmaestro - Database DevOps
 
You don't want to do it like that
You don't want to do it like thatYou don't want to do it like that
You don't want to do it like thatSharon James
 
CollapSphere 2019 - SUPERCHARGED HCL Notes V11 Upgrades
CollapSphere 2019 - SUPERCHARGED HCL Notes V11 UpgradesCollapSphere 2019 - SUPERCHARGED HCL Notes V11 Upgrades
CollapSphere 2019 - SUPERCHARGED HCL Notes V11 UpgradesChristoph Adler
 
VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario VMworld
 
IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning Vladislav Tatarincev
 
Connections Migrations the easy way Soccnx10
Connections Migrations the easy way Soccnx10Connections Migrations the easy way Soccnx10
Connections Migrations the easy way Soccnx10Sharon James
 
Gdco12 kartik ayyar
Gdco12 kartik ayyarGdco12 kartik ayyar
Gdco12 kartik ayyarKartik Ayyar
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseVinh Nguyen
 
Sailing through devlopment with legacy code
Sailing through devlopment with legacy codeSailing through devlopment with legacy code
Sailing through devlopment with legacy codeprasadkunte
 
Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408Tom Gamull
 
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012Amazon Web Services
 
CollabSphere 2019 - Dirty Secrets of the Notes Client
CollabSphere 2019 - Dirty Secrets of the Notes ClientCollabSphere 2019 - Dirty Secrets of the Notes Client
CollabSphere 2019 - Dirty Secrets of the Notes ClientChristoph Adler
 
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 20161693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016panagenda
 
Engage 2020 - HCL Notes V11 Performance Boost
Engage 2020 - HCL Notes V11 Performance BoostEngage 2020 - HCL Notes V11 Performance Boost
Engage 2020 - HCL Notes V11 Performance BoostChristoph Adler
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connectionspanagenda
 
Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i  Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i Zend by Rogue Wave Software
 
Troubleshooting K1000
Troubleshooting K1000Troubleshooting K1000
Troubleshooting K1000Dell World
 

La actualidad más candente (20)

Migration from 5 to Connections 6 - been there, done that
Migration from 5 to Connections 6 - been there, done thatMigration from 5 to Connections 6 - been there, done that
Migration from 5 to Connections 6 - been there, done that
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
 
You don't want to do it like that
You don't want to do it like thatYou don't want to do it like that
You don't want to do it like that
 
CollapSphere 2019 - SUPERCHARGED HCL Notes V11 Upgrades
CollapSphere 2019 - SUPERCHARGED HCL Notes V11 UpgradesCollapSphere 2019 - SUPERCHARGED HCL Notes V11 Upgrades
CollapSphere 2019 - SUPERCHARGED HCL Notes V11 Upgrades
 
VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario
 
IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning
 
Connections Migrations the easy way Soccnx10
Connections Migrations the easy way Soccnx10Connections Migrations the easy way Soccnx10
Connections Migrations the easy way Soccnx10
 
Gdco12 kartik ayyar
Gdco12 kartik ayyarGdco12 kartik ayyar
Gdco12 kartik ayyar
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress Database
 
Sailing through devlopment with legacy code
Sailing through devlopment with legacy codeSailing through devlopment with legacy code
Sailing through devlopment with legacy code
 
Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408
 
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
 
CollabSphere 2019 - Dirty Secrets of the Notes Client
CollabSphere 2019 - Dirty Secrets of the Notes ClientCollabSphere 2019 - Dirty Secrets of the Notes Client
CollabSphere 2019 - Dirty Secrets of the Notes Client
 
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 20161693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
 
IBM Lotus Notes 360
IBM Lotus Notes 360IBM Lotus Notes 360
IBM Lotus Notes 360
 
Engage 2020 - HCL Notes V11 Performance Boost
Engage 2020 - HCL Notes V11 Performance BoostEngage 2020 - HCL Notes V11 Performance Boost
Engage 2020 - HCL Notes V11 Performance Boost
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connections
 
Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i  Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i
 
Troubleshooting K1000
Troubleshooting K1000Troubleshooting K1000
Troubleshooting K1000
 

Destacado

Engage 2016: Back From the Dead: How Bad Code Kills a Good Server
Engage 2016: Back From the Dead: How Bad Code Kills a Good ServerEngage 2016: Back From the Dead: How Bad Code Kills a Good Server
Engage 2016: Back From the Dead: How Bad Code Kills a Good ServerSerdar Basegmez
 
ICONUK 2015: How to Embrace Your XPages Plugin Super Powers
ICONUK 2015: How to Embrace Your XPages Plugin Super PowersICONUK 2015: How to Embrace Your XPages Plugin Super Powers
ICONUK 2015: How to Embrace Your XPages Plugin Super PowersSerdar Basegmez
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Serdar Basegmez
 
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!Serdar Basegmez
 
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good ServerIBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good ServerSerdar Basegmez
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...Serdar Basegmez
 
BP 308 - The Journey to Becoming a Social Application Developer
BP 308 - The Journey to Becoming a Social Application DeveloperBP 308 - The Journey to Becoming a Social Application Developer
BP 308 - The Journey to Becoming a Social Application DeveloperSerdar Basegmez
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®Serdar Basegmez
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingContent Marketing Institute
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (19)

Engage 2016: Back From the Dead: How Bad Code Kills a Good Server
Engage 2016: Back From the Dead: How Bad Code Kills a Good ServerEngage 2016: Back From the Dead: How Bad Code Kills a Good Server
Engage 2016: Back From the Dead: How Bad Code Kills a Good Server
 
ICONUK 2015: How to Embrace Your XPages Plugin Super Powers
ICONUK 2015: How to Embrace Your XPages Plugin Super PowersICONUK 2015: How to Embrace Your XPages Plugin Super Powers
ICONUK 2015: How to Embrace Your XPages Plugin Super Powers
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
 
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
 
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good ServerIBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
BP 308 - The Journey to Becoming a Social Application Developer
BP 308 - The Journey to Becoming a Social Application DeveloperBP 308 - The Journey to Becoming a Social Application Developer
BP 308 - The Journey to Becoming a Social Application Developer
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a ICONUK 2016: Back From the Dead: How Bad Code Kills a Good Server

Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerTeamstudio
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelDaniel Coupal
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesJonathan Klein
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtimeDBmaestro - Database DevOps
 
Scaling apps for the big time
Scaling apps for the big timeScaling apps for the big time
Scaling apps for the big timeproitconsult
 
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring ToolLumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring Toolfinitsolutions
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Databricks
 
Fixing Domino Server Sickness
Fixing Domino Server SicknessFixing Domino Server Sickness
Fixing Domino Server SicknessGabriella Davis
 
Hands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandHands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandC2B2 Consulting
 
Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...
Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...
Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...Spark Summit
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best PracticesNagios
 
How to manage and monitor large sql server estates
How to manage and monitor large sql server estatesHow to manage and monitor large sql server estates
How to manage and monitor large sql server estatesRed Gate Software
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationJulien Dubois
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the TrenchesDonald Belcham
 
Optimizing thread performance for a genomics variant caller
Optimizing thread performance for a genomics variant callerOptimizing thread performance for a genomics variant caller
Optimizing thread performance for a genomics variant callerAllineaSoftware
 
Application Performance Management
Application Performance ManagementApplication Performance Management
Application Performance ManagementNoriaki Tatsumi
 
Taking Over & Managing Large Messy Systems
Taking Over & Managing Large Messy SystemsTaking Over & Managing Large Messy Systems
Taking Over & Managing Large Messy SystemsSteve Mushero
 
How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...
How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...
How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...Nicolas Henry
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Lari Hotari
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleMike Willbanks
 

Similar a ICONUK 2016: Back From the Dead: How Bad Code Kills a Good Server (20)

Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast Websites
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
Scaling apps for the big time
Scaling apps for the big timeScaling apps for the big time
Scaling apps for the big time
 
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring ToolLumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
Fixing Domino Server Sickness
Fixing Domino Server SicknessFixing Domino Server Sickness
Fixing Domino Server Sickness
 
Hands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandHands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx Poland
 
Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...
Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...
Dr. Elephant: Achieving Quicker, Easier, and Cost-Effective Big Data Analytic...
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
How to manage and monitor large sql server estates
How to manage and monitor large sql server estatesHow to manage and monitor large sql server estates
How to manage and monitor large sql server estates
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample application
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
Optimizing thread performance for a genomics variant caller
Optimizing thread performance for a genomics variant callerOptimizing thread performance for a genomics variant caller
Optimizing thread performance for a genomics variant caller
 
Application Performance Management
Application Performance ManagementApplication Performance Management
Application Performance Management
 
Taking Over & Managing Large Messy Systems
Taking Over & Managing Large Messy SystemsTaking Over & Managing Large Messy Systems
Taking Over & Managing Large Messy Systems
 
How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...
How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...
How to Stabilise and Improve an SAP BusinessObjects BI 4.2 Enterprise Shared ...
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for Scale
 

Último

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Último (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

ICONUK 2016: Back From the Dead: How Bad Code Kills a Good Server

  • 1. Back from the Dead: When Bad Code Kills a Good Server Serdar Basegmez - Developi - @serdar_basegmez William Malchisky Jr. - ESS - @BillMalchisky
  • 2. Our Story in Forty-five Minutes • Preface • Chapter I - The Beginning • Chapter 2 - Searching for Clues • Chapter 3 - Creating a Solid Platform • Chapter 4 - The Softside of Performance Gains • The Final Chapter - Results 2
  • 3. Disclaimer "Ladies and Gentlemen. The story you are about to see is true; the names have been changed to protect the innocent." --Dragnet 3
  • 4. Disclaimer "Ladies and Gentlemen. The story you are about to see is true; the names have been changed to protect the innocent." --Dragnet For example... Acme Corporation is now referred to as Acme, Inc. 4
  • 5. Setting Expectations • What we will cover • Problem analysis • Troubleshooting skills • Best practices • The performance impact of suboptimal applications • What we omitted • Boring, rambling, dry, lectures • Useless drivel 5
  • 6. Our Story in Forty-five Minutes • Preface • Chapter I - The Beginning • Chapter 2 - Searching for Clues • Chapter 3 - Creating a Solid Platform • Chapter 4 - The Softside of Performance Gains • The Final Chapter - Results 6
  • 7. Customer Calls • "We're having a problem. Can you help?" • "Absolutely. What's happening?" • "Our mission critical DB is really $%&@#$^& our users. It's way too slow. It takes less time to reboot [Windows 3.1 on an i386 with 32MB RAM] than to open a document." • "Any idea what changed?" • "We don't know. We have not touched the box." 7
  • 8. Why Domino Servers Fail? • Lack of expertise and/or knowledge • Unplanned and/or unexpected expansion • No dedicated Administrator • No change management • No monitoring • Workaround overloading 8
  • 9. Our Story in Forty-five Minutes • Preface • Chapter I - The Beginning • Chapter 2 - Searching for Clues • Chapter 3 - Creating a Solid Platform • Chapter 4 - The Softside of Performance Gains • The Final Chapter - Results 9
  • 10. "Round Up the Usual Suspects" • While waiting for access, request the following • Helps establish the level of criticality 10 notes.ini log.nsf sh tasks top vmstat iosys df -h Affected user(s) to server ping results mount swapon -s Server NAB DB copy, sans users
  • 11. Data, Data Everywhere • Ran DCT - returned a few items, but nothing applicable to the performance issue experienced • Checked Domino stats • Located a key issue - needle in haystack • SAI fluctuated wildly, frequently, plummeting to 18% for minutes on end • Locate any recent NSD files for analysis 11
  • 12. Quick Example - iostat, vmstat malchw@san-domino:~$ iostat Linux 3.13.0-83-generic (san-domino) 03/23/2016 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 6.21 0.25 3.69 0.51 0.00 89.34 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 45.34 2075.44 778.25 6028264 2260469 sdb 0.36 1.52 0.03 4422 80 dm-0 24.51 117.04 186.80 339957 542584 dm-1 16.17 415.61 79.82 1207173 231836 dm-2 17.64 1540.92 511.61 4475713 1485996 
 malchw@san-domino:~$ vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 16943764 153144 7941660 0 0 262 98 144 681 6 4 89 1 0 12
  • 13. Pro Tip on Data Collection • Watch the server when nobody else does • Lots of strange things happen on servers overnight • Observed the system processing over one million records in :15 twice a week, at different times Example: no one at Acme, Inc. knew this occurred or why 13
  • 14. Initial Data Analysis - OS • Swap space 50% of installed memory • Memory was under 1GB for mission critical server Several key DBs contained 100k+ docs • Combination created page faulting plague further eroding performance • System properly patched • Free space adequate 14
  • 15. Initial Data Analysis - Notes.ini • Obvious but important data points • Server layout • Where items located • Recognized server.id file • Server tasks Contrast to sh tasks requested earlier • No obvious problems 15
  • 16. Initial Data Analysis - Amgr • Agents running all hours of the night and day • Agents running from DBs actively being compacted • Agents running from DBs when updall and fixup running • Not all scheduled agents needed to run all weekend 16
  • 17. Initial Data Analysis - Log.sf • Compact still running when updall Program fires-off • Compact never finished before execution time ceiling hit Left largest DBs in a completely suboptimal state • Connected to servers that did not exist • Scheduled replication documents • Significant delays with replica synchronization • Ensured data never properly synchronized across domain • Certain connection documents only covered two DBs 17
  • 18. Initial Data Analysis - DBs • Several big DBs last fixup completed two years ago • Most heavily used files 30-75% Used • Many views means clicking one forces a new index build • No design, document, or attachment compression • Design server task citing non-existent templates 18
  • 19. Our Story in Forty-five Minutes • Preface • Chapter I - The Beginning • Chapter 2 - Searching for Clues • Chapter 3 - Creating a Solid Platform • Chapter 4 - The Softside of Performance Gains • The Final Chapter - Results 19
  • 20. Tier 1 - OS • Swap space - No set rule these days 1.5x - 2.0x RAM is good rule of thumb • Memory - 4GB per processor on busy servers • VMware settings if available Avoid temptation of too many processors • Review partitions and free space 20
  • 21. Additional OS Considerations • Check that previous made system changes stick Unfamiliar servers can exhibit odd behavior • Check IBM Technotes for any recent performance issues • Once OS is working, check to ensure that virtualization is optimal 21
  • 22. Tier 2 - Domino • Space properly Program Documents Avoid overlap with agents and other Programs • Pause agent schedule during maintenance • Schedule a weekend to complete first full maintenance set First full compact will take much longer than you realize • Create maintenance schedule of tasks agreed to by business line managers Ensures all needed jobs are available when needed 22
  • 23. Additional Items to Fix • Review all enabled Domino features to ensure that they function properly • Simple configuration miscues can impact negatively • Cluster replication unable to locate a cluster member • DNS errors create lookup delays • Remove unneeded, deprecated network ports 23
  • 24. Our Story in Forty-five Minutes • Preface • Chapter I - The Beginning • Chapter 2 - Searching for Clues • Chapter 3 - Creating a Solid Platform • Chapter 4 - The Softside of Performance Gains • The Final Chapter - Results 24
  • 25. Where are We? • Domino Admin handled the first level treatment • Server performs well, but not good enough • Triangulated the issue to a mission-critical application • Now what? 25
  • 26. Why Domino Apps Fail? • Lack of expertise and/or knowledge • Developers evolved from power users • Architecture overloading • Unplanned and/or unexpected expansion • Undocumented code and/or business process • No change management • Quick & dirty development 26
  • 27. Developers vs Performance Issues • There is no magic pill for finding a performance issue • Many problems are circumstantial Depends on who/when/how… • Repeating the problem on a controlled environment • Need for Proof! • The most difficult part of the task • Need to be systematical 27
  • 28. Science Just Works! • Research and Assessment, • Speculation for fixes, • Experiment, • Prove! 28 http://www.wired.com/2013/04/whats-wrong-with-the-scientific-method/
  • 29. Methodology 29 Research Symptoms (e.g. logs, performance data, etc.) Story (e.g. user input) Application code Hypothesis Speculation on possible reasons Search for ‘Usual Suspects’ Experiment Testing for possible reasons Analyze Check symptoms if fixed Conclusion Issue validated and proved to be fixed.
  • 30. Research & Assessment • What to collect, based on the symptom; • CPU/memory load, hangs, spikes, crashes, etc. • All the time, the same time everyday or random? • Experienced by specific users? • We are looking for a pattern between incidents. 30
  • 31. Data Collection Checklist Log/NSD/Semaphore files Server configuration (inc. notes.ini) Server monitoring and statistics data Web logs (for web application issues) XPages and OSGi logs (for XPages specific issues) Application and dependencies 31
  • 32. Isolate the Application • Sometimes, even opening in DDE may cause issues! e.g. XPages components are automatically built • Application code might have side effects e.g. Updating on another data source, adding audit logs, performance degradation on the server, etc. • There will be dependencies • Once isolated, we can start inspection… 32
  • 33. Usual Suspects • Database corruptions • @Today/@Now in views • Code snippets acting like an admin Updating views, replicating databases, running server commands • Code snippets using the worst practices Search in a large database, wrong looping, etc. • Anything that fits into the pattern if there is one e.g. An agent matching the incident timing 33
  • 35. Team Up! • Deeper investigation needs a teaming effort • Admins and Developers should collaborate • A test setup to simulate the production environment • Intensive / Controlled debugging sessions in limited time windows • Sharing expertise • Experimenting on production should be the last resort • Once a repeatable error found, cooperate for a solution 35
  • 37. Example Case - Analysis • JVM Crash with the HTTP task • Random times • No pattern in the log • Memory dumps point a leak in the JVM Heap • Inspected XPages applications, nothing found • Triangulated the problem into one XPages app, following clues in intensive debugging on memory • Isolated the application for a load test, nothing found • Increased logging, to collect more data, no hope! 37
  • 38. Example Case - Resolution • Checked the server configuration and noticed • Logging data incomplete • Removed exclusions • New logs pointed the problem: • Searching software crawling a specific page • Page generates state data and fills up the memory • Simulated the same crash on the test environment • One line of code fixed the issue 38
  • 39. Another Case - Analysis • A mission critical application at a bank • Web application with 2000+ users • CPU spikes and random hangs, mostly afternoon • Logs are clear, no crashes, no error messages • Isolated the application, inspected the ‘usual suspects’ • Found a web agent updating a view! • Triangulated the problem using web logs and SEMDEBUG • But, cannot validate the issue on the test environment… 39
  • 40. Another Case - Resolution • Cooperated with the Domino Admin • Detailed assessment on the server configuration • We found the issue! • “ServerTasksAt14” running an updall task. • Another Program file running Updall on a specific database, every 30 minutes • Applied to the test platform, validated by a load test • Problem solved! 40
  • 41. Our Story in Forty-five Minutes • Preface • Chapter I - The Beginning • Chapter 2 - Searching for Clues • Chapter 3 - Creating a Solid Platform • Chapter 4 - The Softside of Performance Gains • The Final Chapter - Results 41
  • 42. Quality Analysis Yields Quality Results • Page faults reduced to zero • General DB usage and administration tasks work well • SAI now over 80% • Weird overnight (agent) system operations resolved • Key DBs have 93% used space now • All DBs compressed: design, documents, all attachments • Program documents, agents all adjusted: finish, no overlap 42
  • 43. Note on Performance 43 When done properly, few users tend to notice the change, but if removed they will all complain
  • 44. Teamwork vs. Performance Neither an admin nor a developer could solve all of these issues alone! 44
  • 45. Bonus Slide • You can get help inspecting applications and servers • teamstudio also sponsored ICON UK! 45 cooperteam MartinScott teamstudio Ytria
  • 46. Serdar Başeğmez • IBM Champion (2011 - 2016) • Developi Information Systems, Istanbul • Contributing… OpenNTF / LUGTR / LotusNotus.com • Featured on… Engage UG, IBM Connect, ICON UK, NotesIn9… • Also… Blogger and Podcaster on Scientific Skepticism 46
  • 47. William Malchisky Jr. • IBM Champion (2011 - 2016) • Effective Software Solutions, LLC • Co-founder of Linuxfest at Lotusphere/Connect • Speaker at 25+ Lotus/IBM related events/LUGs • Co-authored two IBM Redbooks • Co-wrote the IBM Education Administration track for Domino 8.5 47
  • 48. Follow Up - Contact Information 48 Serdar Basegmez serdar.basegmez@developi.com @serdar_basegmez Skype: sbasegmez Blog: lotusnotus.com Bill Malchisky Jr. william.malchisky@effectivesoftware.com @billmalchisky Skype: FairTaxBill Blog: billmal.com