+ All Categories
Home > Documents > Tuning Apache/MySQL/PHP

Tuning Apache/MySQL/PHP

Date post: 04-Jan-2016
Category:
Author: fawn
View: 52 times
Download: 1 times
Share this document with a friend
Description:
Tuning Apache/MySQL/PHP. Outline. Simple Tuning Apache/MySQL/PHP 冗 in PHP code 贅 in SQL command 肥 in data set External Tuning Apache/MySQL/PHP Q&A. Apache – Static pages. Apache – Dynamic Pages. Apache – Life Cycle. Apache – Request Loop. Apache – Tuning in httpd.conf (1). - PowerPoint PPT Presentation
Embed Size (px)
of 24 /24
Tuning Apache/MySQL/PHP
Transcript
  • Tuning Apache/MySQL/PHP

  • OutlineSimple Tuning Apache/MySQL/PHP in PHP code in SQL command in data setExternal Tuning Apache/MySQL/PHPQ&A

  • Apache Static pages

  • Apache Dynamic Pages

  • Apache Life Cycle

  • Apache Request Loop

  • Apache Tuning in httpd.conf (1)MinSpareServersMaxSpareServersStartServersMaxClients

  • Apache Tuning in httpd.conf (2)pre-forkStartServersMaxSpareServersMinSpareServersMaxClients

  • Apache Tuning in httpd.conf (3)Remove useless modulediet httpd memory sizeVirtualHost / ErrorLog & CustomLogfor Log AnalysisLog file rotate(+gzip) faster

  • MySQL Tuning (1)Use my.cnfmy-medium.cnf (128M)my-large.cnf (512M)my-huge.cnf (1G-2G)my-Custom.cnf (?)

  • MySQL Tuning (2)Environmentbuild with WITH_LINUXTHREADS (FreeBSD)Running on Linux, threading & file system

  • PHP - TuningApache Module & CGILess memory usageDifferent CGI/CLIextensions.ini -> no different (FreeBSD)Nothing to do?See Next Slide

  • in PHP code (1)if ( isset($_GET[do_a])){ N1 lines code; }if ( isset($_GET[do_b])){ N2 lines code; }if ( isset($_GET[do_c])){ N3 lines code; };syntax check linesL = N1+N2+N3+if ( isset($_GET[do_a])){ require(do_a.php); }if ( isset($_GET[do_b])){ require(do_b.php); }if ( isset($_GET[do_c])){ require(do_c.php); };syntax check linesL = 1+1+1+

  • in PHP code (2)

  • in PHP code (3)futabaimgboard.phpPHP (v0.8 lot.031015, 1130)0 ( static html file)460380930560280760

  • in SQL command (1)SELECT * FROM cddb JOIN composer;// m x nif ( $cddb[cddb_id] == 1 && $cddb[composer_id] == 2)echo( $cddb[composer_name] );SELECT * FROM cddb// O(m x n)LEFT JOIN composerON composer.composer_id=cddb.composer_id;if ( $cddb[cddb_id] == 1 ) echo( $cddb[composer_name] );SELECT * FROM composer;// nSELECT * FROM cddb;// mif ( $cddb[cddb_id] == 1 ) echo( $composer[$cddb[composer_id]][name] );

  • in SQL command (2)

  • in data set (1)qid set index, O(log N) for select 1

    SELECT * FROM Q500WHERE qid IN (1,4,8,10,); // select 50-> 50 * O(log 500)SELECT * FROM Q1MWHERE qid IN (1,4,8,10,); // select 50-> 50 * O(log1000000)

  • in data set (2)

  • External Tuning - Apache

    httpd.conf: MaxClients MAX value 512 ?kqueue (FreeBSD)

    Redirect to thttpd / lighttpdFor static files

  • External Tuning - MySQLUse the MoneyPowerful CPU, more CPU/HT/CoreMuch more RAMFaster I/O Storage

  • External Tuning - PHPOperation/Object Code ImprovementZend Optimizer (www.zend.com)Turck-MMCache (SourceForge.net)

    Data cacheMemcached (www.danga.com)

  • FinallyQ&A()()

  • The END

    Thank You

    ab


Recommended