3. The Story
× A sad non productive server
× Can’t work with more than a couple clients
× Sometimes even gets one client hanging for
long time
× We even raised his salary and still can’t make
it
× Because is not actually his fault…
4. Listen to the server
× The server is not understood
× What it does and how it does it?
× Adjust the server as per the needs
× The needs of the application
× The needs of the users
5. The basics of any
HTTP application
× Requests
× Threads
× Memory
× Disk I/O
× Processing (CPU)
× Database
× External
6. HTTP Requests
× Not every request is the same
× Anonymous requests
× Authenticated requests
× Requests are handled in a thread
× Every request takes memory
× Every request take processing
× They may be using disk, DB and/or externals
7. What to look for
× When optimizing you don’t look for everything
× Look for hotspots
× Requests that takes too long
× Requests that generate locks
× Tune up memory/threads relation
× Tune up the max threads the server can handle
× Tune up DB according to it’s usage
× Where/when it breaks!
8. To the rescue: jMeter
× jMeter is cross platform (made in Java)
× Can trigger multiple instances from different machines at
once
× Can record your activity and then customize it
× Can assert
× Is configurable and programmable
× Can run many kind of loops and threads
9.
10. Are we done yet?
× We are never done
× An application and server needs to be adjusted over time
× Based on users and data growth