Performance: Scaling the Web with Apache

whoami

Me, with less beard, and a hat.
  • Igor Galić
  • igalic@apache.org
  • igalic@opencsw.org
  • IRC: jMCg
  • @hirojin

Overview

Concepts

Techniques

Technologies

No Silver Bullet

An overview in a picture

1 Request

Optimizing a single request

1 Request

  • Expries Headers
  • ETags
  • Compress Content
  • Assets on Cookie-free domain
  • CDN
Optimizing a single request

500 Requests

Optimizing multiple concurent requests

500 Requests

  • Throughput
  • tsung, jmeter
  • dstat, vmstax
Optimizing multiple concurent requests

Grey Boxing

Improving performance towards each component

Grey Boxing

  • Identify Bottleneck
  • get Stacktrace: jstack/kill -QUIT, kill -ARBRT, Xdebug
  • Visualize: Samurai, KCachegrind
Improving performance towards each component

Access Times




Access Times

CPU 1s




Access Times

CPU 1s


RAM 5min



Access Times

CPU 1s


RAM 5min


Disk 6 months


Application Server, OS, Machine

Zooming in on the App Server, the system and the machine

Application Server, OS, Machine

  • Update JVM, PHP, Ruby.…
  • Defaults, Alignment
Zooming in on the App Server, the system and the machine

Architecture

Performance beyond a single machine: Horizontal Scaling

Architecture

  • CookieDB
Performance beyond a single machine: Horizontal Scaling

That's all folks!

Questions?

The latest version of these slides can be found at

http://blag.esotericsystems.at/igor/presents/web-performance/index.html