Shoehorning Apache Onto Your Box - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Shoehorning Apache Onto Your Box

Description:

... and libraries ... many third-party libraries. FreeBSD: threading not reliable ... Images. SSL. Database. Application server. Development/Deployment ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 33
Provided by: sander3
Learn more at: http://people.apache.org
Category:
Tags: apache | box | onto | shoehorning

less

Transcript and Presenter's Notes

Title: Shoehorning Apache Onto Your Box


1
Shoehorning Apache Onto Your Box
  • System Sizing tips

Sander Temme ltsander_at_temme.netgt
2
Agenda
  • The Problem
  • Monitoring Your Server
  • How Many Processes?
  • Selecting Your MPM
  • Spinning Locks
  • Tuning Tips
  • Further Reading

3
The Problem
  • Limited Resources
  • Work with what you have
  • How to get the most out of existing infrastructure

4
Monitoring Your Server
  • top
  • free
  • vmstat
  • Web server logs
  • SE Toolkit
  • mod_status
  • Generating Load

5
Top
6
free and vmstat
sctemme_at_eartha sctemme free total
used free shared buffers
cached Mem 635080 601288 33792
0 110824 301084 -/ buffers/cache
189380 445700 Swap 1315400
76 1315324
sctemme_at_eartha sctemme vmstat 3 5 procs
memory swap io
system cpu r b w swpd free buff
cache si so bi bo in cs us sy id
1 0 0 76 32704 110876 301092 0 0 14
17 117 254 4 3 92 11 0 1 76
29672 110876 301092 0 0 0 32 118
1717 52 48 0 16 0 1 76 24564 110876
301092 0 0 0 0 119 2529 51 49
0 28 0 0 76 19740 110876 301092 0 0
0 8 119 4194 58 42 0 0 0 0 76
25188 110880 301092 0 0 0 8 182
5707 56 39 5
7
Web Server Logs
  • ErrorLog
  • LogLevel debug, info, notice, warn, error, crit
  • Access Log TransferLog or CustomLog
  • Common Log Format

8
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
Client IP 172.16.2.91
RFC 1413 ident -
username -
timestamp 16/Nov/2003152329 -0800
Request "GET /favicon.ico HTTP/1.1"
Status Code 404
Content Bytes 283
9
SE Toolkit
  • Solaris-specific
  • Freely available monitoring toolkit
  • http//www.setoolkit.com/
  • Scriptable with own language

10
zoom.se
11
zoom.se trouble
12
mod_status
  • Apache module
  • Outputs internal status of web server
  • Part of standard installation
  • Not turned on by default

13
Generating Load
  • For testing and sizing purposes
  • Not necessarily realistic
  • Several free programs available
  • ab
  • http_load
  • Flood
  • JMeter
  • OpenSTA
  • Commercial offerings
  • Load Runner

14
How Many Processes?
  • MaxClients
  • Spinning Threads
  • Sizing MaxClients

15
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)

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

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

19
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

20
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 NPTL in 2.6
  • NTPL already in RH 9, RHAS 3

21
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

22
Spinning Locks
  • Accept mutex locking
  • Why Apache locks
  • When it doesnt
  • How to manipulate

23
Accept Mutex Locking
Lock mutex
Got conn?
Loop poll listeners
Accept connection
Unlock mutex
Handle connection
Multiple Listener Configuration (default)
24
Accept Mutex Locking
Lock mutex
Accept connection
Unlock mutex
Handle connection
Single Listener Configuration
25
Accept Mutex Locking
Accept connection
Handle connection
Single Listener Unserialized Accept (SLUA)
26
Tuning Tips
  • RAM and swap space
  • ulimit files and processes
  • Turn off unused services and modules
  • Spread the load around

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

28
Spread the Load
  • Move to tiered model
  • Off-load services to other boxes
  • Images
  • SSL
  • Database
  • Application server
  • Development/Deployment schism

29
Tiered Model
Database
Tomcat
Net
Apache
30
Further Reading
  • Ryan B. Bloom, Apache Server 2.0 The Complete
    Reference, 2002 McGraw Hill Osborne ISBN
    0-07-222344-8
  • 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

31
Session Roadmap
  • TU02 Advanced Topics in Module Design
    Threadsafety and Portability
  • TU05 Apache Performance
  • TU18 Scalable Apache for Beginners
  • WE04 Parallel Development and Hosting using
    Apache, Tomcat and MySQL

32
Current Version
  • http//apache.org/sctemme/Apcon2003/MO12/
Write a Comment
User Comments (0)
About PowerShow.com