Shoehorning Apache Onto Your Box - PowerPoint PPT Presentation

About This Presentation
Title:

Shoehorning Apache Onto Your Box

Description:

So, your web server machine may not be the fastest, shiniest machine, ... 172.16.2.91 - - [16/Nov/2003:15:23:29 -0800] 'GET /favicon.ico HTTP/1.1' 404 283 ... – PowerPoint PPT presentation

Number of Views:92
Avg rating:3.0/5.0
Slides: 37
Provided by: sander3
Learn more at: http://people.apache.org
Category:

less

Transcript and Presenter's Notes

Title: Shoehorning Apache Onto Your Box


1
Shoehorning Apache Onto Your Box
  • System Sizing Tips

Sander Temme
2
So, your web server machine may not be the
fastest, shiniest machine,but it can still take
a few hits without going down.
3
(No Transcript)
4
Assumptions
  • Limited Resources
  • Work With What You Have
  • Youre probably running Linux
  • No Compiling or Recompiling!
  • You can find httpd.conf

5
Purposes of Monitoring
  • Observation
  • Extrapolation
  • Signals/Alerts
  • Testing

6
Monitoring Your Server
7
Monitoring Apache
8
Monitoring Solaris SE Toolkit
  • Lightweight
  • Programmable
  • Alive

http//www.wundermoosen.com/default.aspx?f2pset
oolkit
9
Other Monitoring Tools
  • vmstat
  • top
  • free

10
Web Server Logs
  • ErrorLog
  • LogLevel debug, info, notice, warn, error, crit
  • Access Log TransferLog or CustomLog
  • Common Log Format

11
Common Log Format
172.16.2.91 - - 16/Nov/2003152327 -0800 "GET
/sctemme/ HTTP/1.1" 200 1446 172.16.2.91 - -
16/Nov/2003152328 -0800 "GET
/sctemme/css/doc.css HTTP/1.1" 200
167 172.16.2.91 - - 16/Nov/2003152328 -0800
"GET /sctemme/css/menu.css HTTP/1.1" 200
623 172.16.2.91 - - 16/Nov/2003152329 -0800
"GET /favicon.ico HTTP/1.1" 404 283 172.16.2.91 -
- 16/Nov/2003152334 -0800 "GET
/sctemme/index.html HTTP/1.1" 200 1446
12
Configuring for Performance
  • Configuring Apache
  • Tuning the Operating System
  • Scaling Your Site

13
Apache Configuration
  • Process/Thread Management
  • DNS Lookups
  • Avoid .htaccess Files
  • Disable unused modules
  • Tune your App Tier

14
DNS Lookups
  • HostnameLookups
  • Access Control
  • Bad Deny from example.com
  • Good Deny from 172.160.234.5

15
.htaccess Files
  • Per-directory configuration files
  • Accessed for every request
  • Best performance AllowOverride none

GET /dir1/dir2/restricted.html HTTP/1.0
16
MaxClients
  • Configuration file directive
  • Maximum number of workers
  • Apache 1.3, 2.0 Prefork processes
  • Apache 2.0 Worker threads processes
  • Limit according to resources (memory)

17
Sizing MaxClients
  • Take total RAM
  • Subtract OS allowance
  • look at free value without Apache, etc.
  • Subtract external program allowance
  • JVM, cgi programs, MySQL?
  • Divide by httpd process size
  • Read process size from top

18
Top
19
Selecting Your MPM
  • Apache 2.0 only!
  • Processes and Threads
  • Differences between platforms
  • Thread-safety issues

20
Processes and Threads
  • Process
  • Own copy of data structures
  • Shares program code, shared memory
  • Context switches expensive
  • Thread
  • Runs within process
  • Shares process environment
  • No context switch

21
Platforms and Threading
  • Context switches expensive on Solaris, AIX
  • Context switches cheaper on Linux
  • Solaris uses MN threading
  • Linux uses 1 process per thread
  • LinuxThreads implementation is old
  • Replaced by Native Posix Thread Library (NPTL) in
    2.6
  • NTPL already in RH 9, RHAS 3

22
Thread-safety
  • Third-party modules and libraries
  • mod_perl experimental threading in Perl 5.6
    more mature in Perl 5.8
  • PHP uses many third-party libraries
  • FreeBSD threading not reliable until 5.x
  • Use KSE threading in 5.x
  • Still not endorsed by ASF

23
Tune your App Tier
  • Tomcat
  • Edit server.xml, tune minProcessors,
    maxProcessors
  • Tune JVM (Heap, Garbage Collection)
  • MySQL
  • Ships with various scenarios in support-files
  • my-small,medium,large,huge.conf
  • PHP prefork every child makes a connection

24
System Tuning Tips
  • RAM and swap space
  • ulimit files and processes
  • Turn off unused services and modules

25
RAM and Swap
  • Swap is disk-based Extension of RAM
  • Excessive swapping kills performance
  • Tune MaxClients
  • Never have more memory than swap
  • Upgrade RAM - add more swap space

26
ulimit
  • Per-process resource limits
  • Built-in command of sh, bash
  • Important limits
  • processes (-u)
  • open files (-n)
  • Set in invoking shell
  • Code in Apache 2.0 startup script
  • ulimit -S -n ulimit -H -n
  • Linux /etc/security/limits.conf

27
Scaling Your Site
  • Vertically
  • Tiered Model
  • Horizontally
  • Load Balancing

28
Scaling Vertically
TCP/IP
Client
TCP/IP
TCP/IP
29
Scaling Vertically
  • Move Services to Other Hosts
  • Pros
  • Less resource contention
  • Specialized hardware
  • Scale tiers individually
  • Cons
  • Development/Deployment harder
  • More hosts to manage

30
Scaling Horizontally
Client
31
Tips
  • Observe Before You Act
  • Act on Monitoring Results
  • Dont Overload Your System
  • Use A Staging Server

32
QA
33
Further Reading
  • Ryan B. Bloom, Apache Server 2.0 The Complete
    Reference, 2002 McGraw Hill Osborne ISBN
    0-07-222344-8
  • Ben Laurie and Peter Laurie, Apache The
    Definitive Guide (3rd Edition), 2002 OReilly
    Associates ISBN 0596002033
  • Patrick Killelea, Web Performance Tuning, 2nd
    Edition, 2002 OReilly Associates ISBN
    0-596-00172-X
  • http//httpd.apache.org/docs-2.0/misc/perf-tuning.
    html
  • http//httpd.apache.org/docs/misc/perf-tuning.html
  • Adrian Cockcroft, Richard Pettit and Sun
    Microsystems Press, Sun Performance and Tuning
    Java and the Internet (2nd Edition), 1998
    Prentice Hall PTR ISBN 0130952494
  • Ken Coar and Rich Bowen, Apache Cookbook, 2003
    OReilly Associates ISBN 0596001916

34
Conference Roadmap
  • T11 Scalable Internet Architectures
  • MO04 Advanced Topics in Module Design
  • TU02 Apache as a Reverse Proxy
  • TU05 Building Scalable Websites with Perl
  • TU13 Feedster at 18 Months Old
  • TU17 Migrating the BBC website to Apache
  • WE08 Apache Performance
  • WE19 Powering High-volume web sites with
    Lenya/Cocoon and mod_cache

35
Current Version
  • http//apache.org/sctemme/Apcon2004/MO14/

36
Thank You
Write a Comment
User Comments (0)
About PowerShow.com