Shoehorning Apache Onto Your Box

Slides:



Advertisements
Similar presentations
Web Hosting for Fame and Fortune
Advertisements

Apache Performance Tuning Part 1: Scaling Up Sander Temme.
Apache Performance Tuning Part 1: Scaling Up Sander Temme.
What all is there Inside the Apache web server. These slides are part of study material of LAMP course. Course conducted by Prof Rocky Jagtiani – Technical.
1 Database Driven Web Application Clients Application Servers including web servers Database Server Traditional client-server (2-tier architecture): client:
Apache Performance Tuning Part 2: Scaling Out Sander Temme.
Technology Overview JAVA Servlets CS-611 S. Witherspoon.
CS526 - Advanced Internet & Web Systems May 11, 2009 Nathan Archer.
Apache Performance Tuning Part 1: Scaling Up Sander Temme.
WEB1P servintro1 Introduction to servlets and JSP Dr Jim Briggs.
Information Networking Security and Assurance Lab National Chung Cheng University The Ten Most Critical Web Application Security Vulnerabilities Ryan J.W.
Chapter Apache Installation in Linux- Mandrake. Acknowledgment The following information has been obtained directly from
Analysis and Performance Information Systems 337 Prof. Harry Plantinga.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Apache Performance Tuning Part 1: Scaling Up Sander Temme.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
Chapter 22 Web Hosting and Internet Servers Xuanxuan Su.
Tomcat Celsina Bignoli History of Tomcat Tomcat is the result of the integration of two groups of developers. – JServ, an open source.
Shoehorning Apache Onto Your Box System Sizing Tips Sander Temme.
Securing LAMP: Linux, Apache, MySQL and PHP Track 2 Workshop PacNOG 7 July 1, 2010 Pago Pago, American Samoa.
Apache Architecture. How do we measure performance? Benchmarks –Requests per Second –Bandwidth –Latency –Concurrency (Scalability)
Linux Operations and Administration
TOPIC 1 – SERVER SIDE APPLICATIONS IFS 234 – SERVER SIDE APPLICATION DEVELOPMENT.
22-Aug-15 | 1 |1 | Help! I need more servers! What do I do? Scaling a PHP application.
Shibboleth 2.0 IdP Training: Basics and Installation January, 2009.
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 24 – Web Servers (PWS, IIS, Apache, Jigsaw) Outline 24.1Introduction 24.2Microsoft Personal.
Designing Enterprise Drupal How to scale Drupal server infrastructure ENVIRONMENTS.
1 Shoehorning Apache Onto Your Box System Sizing Tips Sander Temme.
CIT 470: Advanced Network and System AdministrationSlide #1 CIT 470: Advanced Network and System Administration Performance Monitoring.
CIT 470: Advanced Network and System AdministrationSlide #1 CIT 470: Advanced Network and System Administration Performance Monitoring.
C LIENT R EGISTRY OpenEMPI: Operations Support Training SYSNET International, Inc.
Fall 2011 Nassau Community College ITE153 – Operating Systems 1 Session 4 More Hands-on Commands.
Shoehorning Apache Onto Your Box System Sizing tips Sander Temme.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Apache Web Server Quick and Dirty for AfNOG 2015 (Originally by Joel Jaeggli for AfNOG 2007) ‏
Apache Web Server Administration Syed Iqbal Syed Iqbal.
Apache Web Server Quick and Dirty Kevin G. Chege for AfNOG 2013 (Originally by Joel Jaeggli for AfNOG 2007) ‏
The HTTP is a standard that all Web browsers and Web servers must speak in order for the Web portion of the Internet to work.
Apache HTTP Server from 10,000 feet An open source Apache feature overview and discussion.
Basic UNIX Concepts. Why We Need an Operating System (OS) OS interacts with hardware and manages programs. A safe environment for programs to run is required.
Performance Optimization in Apache 2.0 Development: How we made Apache faster, and what we learned from the experience O’Reilly Open.
IBM Http Server Basic Administration. CONTENTS Web server IHS How does IHS differ from Apache Basic configurations Advanced Configurations Performance.
Microsoft Cloud Computing. Topics to be covered 1.Environmental Features of windows azure 2.What is Cloud Computing 3.Roles in Cloud Computing 4.Benefits.
JBOSS Online Training. Introduction to JBOSS Red Hat JBoss Middleware leverages community powered enlighten innovation and standalone open source application.
L.A.M.P. İlker Korkmaz & Kaya Oğuz CS 350. Why cover a lecture on LAMP? ● Job Opportunities – There are many hosting companies offering LAMP as a web.
UNIX Epi Dakai Zhu January 5th, 2005.
NWCLUG 04/06/2010 Jared Moore L A M P.
Web and Proxy Server.
ADVANCED HOSTING Adrian Newby, CTO.
Introduction to threads
Linux Command Tips.
Fundamental of Databases
Node.Js Server Side Javascript
Apache web server Quick overview.
Linux203Training Module System Mgmt.
Netscape Application Server
Tomcat Celsina Bignoli
Platform as a Service.
PHP / MySQL Introduction
Module 3 Building a web app.
Chapter 4: Threads.
Node.Js Server Side Javascript
Apache Performance Tuning
Outline Virtualization Cloud Computing Microsoft Azure Platform
CIT 470: Advanced Network and System Administration
Moodle Scalability What is Scalability?
Google App Engine Ying Zou 01/24/2016.
Architecture of the web
APACHE WEB SERVER.
Web Application Development Using PHP
Presentation transcript:

Shoehorning Apache Onto Your Box System Sizing tips Sander Temme <sander@temme.net>

Agenda The Problem Monitoring Your Server How Many Processes? Selecting Your MPM Spinning Locks Tuning Tips Further Reading

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

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

Top

free and vmstat [sctemme@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@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

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

Common Log Format Client IP 172.16.2.91 RFC 1413 ident - username 172.16.2.91 - - [16/Nov/2003:15:23:27 -0800] "GET /~sctemme/ HTTP/1.1" 200 1446 172.16.2.91 - - [16/Nov/2003:15:23:28 -0800] "GET /~sctemme/css/doc.css HTTP/1.1" 200 167 172.16.2.91 - - [16/Nov/2003:15:23:28 -0800] "GET /~sctemme/css/menu.css HTTP/1.1" 200 623 172.16.2.91 - - [16/Nov/2003:15:23:29 -0800] "GET /favicon.ico HTTP/1.1" 404 283 172.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

SE Toolkit Solaris-specific Freely available monitoring toolkit http://www.setoolkit.com/ Scriptable with own language

zoom.se

zoom.se: trouble

mod_status Apache module Outputs internal status of web server Part of standard installation Not turned on by default

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

How Many Processes? MaxClients Spinning Threads Sizing MaxClients

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)

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

Top

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

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

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

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

Spinning Locks Accept mutex locking Why Apache locks When it doesn’t How to manipulate

Accept Mutex Locking Multiple Listener Configuration (default) Lock mutex Loop: poll listeners Got conn? Accept connection Unlock mutex Handle connection Multiple Listener Configuration (default)

Accept Mutex Locking Single Listener Configuration Lock mutex Accept connection Unlock mutex Handle connection Single Listener Configuration

Accept Mutex Locking Single Listener Unserialized Accept (SLUA) Accept connection Handle connection Single Listener Unserialized Accept (SLUA)

Tuning Tips RAM and swap space ulimit: files and processes Turn off unused services and modules Spread the load around

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

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

Tiered Model Database Tomcat Net Apache

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

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

Current Version http://apache.org/~sctemme/Apcon2003/MO12/