+ All Categories
Home > Documents > Shoehorning Apache Onto Your Box

Shoehorning Apache Onto Your Box

Date post: 09-Feb-2016
Category:
Upload: lela
View: 20 times
Download: 0 times
Share this document with a friend
Description:
Shoehorning Apache Onto Your Box. System Sizing Tips. Sander Temme . So, your web server machine may not be the fastest, shiniest machine, but it can still take a few hits without going down. Assumptions. Limited Resources Work With What You Have - PowerPoint PPT Presentation
36
1 Shoehorning Apache Onto Your Box System Sizing Tips Sander Temme <[email protected]>
Transcript
Page 1: Shoehorning Apache Onto Your Box

1

Shoehorning Apache Onto Your Box

System Sizing Tips

Sander Temme <[email protected]>

Page 2: Shoehorning Apache Onto Your Box

2

So, your web server machine may not be the fastest, shiniest

machine,but it can still take a few hits

without going down.

Page 3: Shoehorning Apache Onto Your Box

3

Page 4: Shoehorning Apache Onto Your Box

4

Assumptions

• Limited Resources• Work With What You Have• You’re probably running Linux• No Compiling or Recompiling!• You can find httpd.conf

Page 5: Shoehorning Apache Onto Your Box

5

Purposes of Monitoring

• Observation• Extrapolation• Signals/Alerts• Testing

Page 6: Shoehorning Apache Onto Your Box

6

Monitoring Your Server

Page 7: Shoehorning Apache Onto Your Box

7

Monitoring Apache

Page 9: Shoehorning Apache Onto Your Box

9

Other Monitoring Tools

• vmstat• top• free

Page 10: Shoehorning Apache Onto Your Box

10

Web Server Logs

• ErrorLog– LogLevel: debug, info, notice, warn, error, crit

• Access Log: TransferLog or CustomLog– Common Log Format

Page 11: Shoehorning Apache Onto Your Box

11

Common Log Format172.16.2.91 - - [16/Nov/2003:15:23:27 -0800] "GET /~sctemme/ HTTP/1.1" 200 1446172.16.2.91 - - [16/Nov/2003:15:23:28 -0800] "GET /~sctemme/css/doc.css HTTP/1.1" 200 167172.16.2.91 - - [16/Nov/2003:15:23:28 -0800] "GET /~sctemme/css/menu.css HTTP/1.1" 200 623172.16.2.91 - - [16/Nov/2003:15:23:29 -0800] "GET /favicon.ico HTTP/1.1" 404 283172.16.2.91 - - [16/Nov/2003:15:23:34 -0800] "GET /~sctemme/index.html HTTP/1.1" 200 1446

Client IP 172.16.2.91

RFC 1413 ident -

username -

timestamp [16/Nov/2003:15:23:29 -0800]

Request "GET /favicon.ico HTTP/1.1"

Status Code 404

Content Bytes 283

Page 12: Shoehorning Apache Onto Your Box

12

Configuring for Performance

• Configuring Apache• Tuning the Operating System• Scaling Your Site

Page 13: Shoehorning Apache Onto Your Box

13

Apache Configuration

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

Page 14: Shoehorning Apache Onto Your Box

14

DNS Lookups

• HostnameLookups• Access Control

– Bad: Deny from example.com– Good: Deny from 172.160.234.5

Page 15: Shoehorning Apache Onto Your Box

15

.htaccess Files

• Per-directory configuration files• Accessed for every request• Best performance: AllowOverride none

GET /dir1/dir2/restricted.html HTTP/1.0

Page 16: Shoehorning Apache Onto Your Box

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)

Page 17: Shoehorning Apache Onto Your Box

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

Page 18: Shoehorning Apache Onto Your Box

18

Top

Page 19: Shoehorning Apache Onto Your Box

19

Selecting Your MPM

• Apache 2.0 only!• Processes and Threads• Differences between platforms• Thread-safety issues

Page 20: Shoehorning Apache Onto Your Box

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

Page 21: Shoehorning Apache Onto Your Box

21

Platforms and Threading

• Context switches expensive on Solaris, AIX• Context switches cheaper on Linux• Solaris uses M:N 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

Page 22: Shoehorning Apache Onto Your Box

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

Page 23: Shoehorning Apache Onto Your Box

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

Page 24: Shoehorning Apache Onto Your Box

24

System Tuning Tips

• RAM and swap space• ulimit: files and processes• Turn off unused services and modules

Page 25: Shoehorning Apache Onto Your Box

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

Page 26: Shoehorning Apache Onto Your Box

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

Page 27: Shoehorning Apache Onto Your Box

27

Scaling Your Site

• Vertically– Tiered Model

• Horizontally– Load Balancing

Page 28: Shoehorning Apache Onto Your Box

28

Scaling Vertically

ClientTCP/IP

TCP/IP

TCP/IP

Page 29: Shoehorning Apache Onto Your Box

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

Page 30: Shoehorning Apache Onto Your Box

30

Scaling Horizontally

Client

Page 31: Shoehorning Apache Onto Your Box

31

Tips

• Observe Before You Act• Act on Monitoring Results• Don’t Overload Your System• Use A Staging Server

Page 32: Shoehorning Apache Onto Your Box

32

Q&A

Page 33: Shoehorning Apache Onto Your Box

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 O’Reilly & Associates; ISBN 0596002033• Patrick Killelea, Web Performance Tuning, 2nd Edition, 2002

O’Reilly & 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 O’Reilly & Associates; ISBN 0596001916

Page 34: Shoehorning Apache Onto Your Box

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

Page 35: Shoehorning Apache Onto Your Box

35

Current Version

http://apache.org/~sctemme/Apcon2004/MO14/

Page 36: Shoehorning Apache Onto Your Box

36

Thank You


Recommended