PHP web serving study Performance report



Similar documents
MAGENTO HOSTING Progressive Server Performance Improvements

How To Use Ngnix (Php) With A Php-Fpm (Php-Fmm) On A Web Server (Php5) On Your Web Browser) On An Ubuntu Web Server On A Raspberry Web 2.5 (Net

Wednesday, October 10, 12. Running a High Performance LAMP stack on a $20 Virtual Server

OVERVIEW Methodology Objectives Terminology Recommended Test Protocol... 3 CLOUD SERVICES VS. DEDICATED HOSTING...

WordPress Optimization

Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs)

CentOS Linux 5.2 and Apache 2.2 vs. Microsoft Windows Web Server 2008 and IIS 7.0 when Serving Static and PHP Content

Performing Load Capacity Test for Web Applications

Drupal in the Cloud. by Azhan Founder/Director S & A Solutions

ZingMe Practice For Building Scalable PHP Website. By Chau Nguyen Nhat Thanh ZingMe Technical Manager Web Technical - VNG

Igor Seletskiy. CEO, CloudLinux

Drupal Performance Tips and Tricks. Khalid Baheyeldin. Drupal Camp Toronto 2014

Abstract. 1. Introduction

PHP on IBM i: What s New with Zend Server 5 for IBM i

Benchmark Performance Test Results for Magento Enterprise Edition

MASTER THESIS. TITLE: Analysis and evaluation of high performance web servers

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

Welcome to Apache the number one Web server in

A 100k Users.. Now What?

Performance for Site Builders

Optimizing Drupal Performance. Benchmark Results

9 Tried and Tested Tips to Increase the Power of your Magento Store

HW9 WordPress & Google Analytics

REQUIREMENTS AND INSTALLATION OF THE NEFSIS DEDICATED SERVER

The course will be run on a Linux platform, but it is suitable for all UNIX based deployments.

Serving 4 million page requests an hour with Magento Enterprise

Varnish the Drupal way

Drupal Memcached Nginx

CloudLinux is a proven solution for shared hosting providers that:

User Guide Zend Server Community 4.0.3

Intro to Load-Balancing Tomcat with httpd and mod_jk

SiteCelerate white paper

Asia Web Services Ltd. (vpshosting.com.hk)

AgencyPortal v5.1 Performance Test Summary Table of Contents

Accelerating Rails with

Metasploit Pro Getting Started Guide

BASICS OF SCALING: LOAD BALANCERS

How to move a SharePoint Server bit environment to a 64-bit environment on Windows Server 2008.

The importance of Drupal Cache. Luis F. Ribeiro Ci&T Inc. 2013

What s really under the hood? How I learned to stop worrying and love Magento

making drupal run fast

Implementing Reverse Proxy Using Squid. Prepared By Visolve Squid Team

HOW TO BUILD A VMWARE APPLIANCE: A CASE STUDY

Big Data with Component Based Software

Practical Load Balancing

Performance test report

Microsoft Windows Server 2003 with Internet Information Services (IIS) 6.0 vs. Linux Competitive Web Server Performance Comparison

Accelerating Wordpress for Pagerank and Profit

Achieving High Throughput. Fernando Castano Sun Microsystems

Performance Evaluation of Shared Hosting Security Methods

VMware vcenter Update Manager Administration Guide

S y s t e m A r c h i t e c t u r e

Rails Application Deployment. July Philly on Rails

CloudOYE CDN USER MANUAL

Deploying and Monitoring Ruby on Rails A practical guide

1Intro. Apache is an open source HTTP web server for Unix, Apache

Web Browsing Examples. How Web Browsing and HTTP Works

This document will list the ManageEngine Applications Manager best practices

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

uilding a Branch Website using Wordpress

APACHE. Presentation by: Lilian Thairu

HOSTING PYTHON WEB APPLICATIONS. Graham Dumpleton PyCon Australia Sydney 2011

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

Drupal Performance Tuning

Ensuring scalability and performance with Drupal as your audience grows

DESIGN AND IMPLEMENTATION OF A WEB SERVER FOR A HOSTING SERVICE

How to Create a Simple Content Management Solution with Joomla! in a vcloud Environment. A VMware Cloud Evaluation Reference Document

Using Redis as a Cache Backend in Magento

System Requirements Table of contents

Installation of PHP, MariaDB, and Apache

Content Management Software Drupal : Open Source Software to create library website

Digital Downloads Pro

Performance Tuning and Optimization for high traffic Drupal sites. Khalid Baheyeldin Drupal Camp, Toronto May 11 12, 2007

About us. Proximity 2015

Scalability and Performance with Apache 2.0

owncloud Enterprise Edition on IBM Infrastructure

NEFSIS DEDICATED SERVER

Java Troubleshooting and Performance

ULTEO OPEN VIRTUAL DESKTOP UBUNTU (PRECISE PANGOLIN) SUPPORT

Nginx 1 Web Server Implementation

Painless Web Proxying with Apache mod_proxy

SIDN Server Measurements

NetIQ Access Manager 4.1

1 How to Monitor Performance

vnas Series All-in-one NAS with virtualization platform

Brocade Virtual Traffic Manager and Magento Deployment Guide

Chapter 3. Hardware and software requirements

Technical Research Paper. Performance tests with the Microsoft Internet Security and Acceleration (ISA) Server

Informatica Data Director Performance

HOW TO MAKE WP FLY...

Xtreeme Search Engine Studio Help Xtreeme

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

Hands-On Lab: WSUS. Lab Manual Expediting WSUS Service for XP Embedded OS

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

BOA BARRACUDA ON ÆGIR ~ MY FIRST YEAR ~ Mladen

Applications Manager Best Practices document

INUVIKA OVD INSTALLING INUVIKA OVD ON RHEL 6

Configuring Microsoft IIS 5.0 With Pramati Server

Content Management System - Drupal. Vikrant Sawant (vikrant.sawant@lc.ca.gov) Legislative Data Center, California

Best Practices for Web Application Load Testing

Transcription:

PHP web serving study Performance report by Stefan "SaltwaterC" Rusu Date: May - June 2010 Contact: http://saltwaterc.net/contact or admin [at] saltwaterc [dot] net

Hardware Configurations Web Server: AMD Phenom II X4 940, ASUS M3A78 Pro, Western Digital WD5000AAKS, 4x Geil Ultra 2 GiB RAM DDR2 PC2-6400 Database Server: AMD Athlon II X2 240e, ASUS M4A78-AM, Western Digital WD5000AAJS, 2x A-DATA 2GiB RAM DDR2 PC2-6400 Test Machine: AMD Turion 64 X2 TL-50 on ASUS A6M-Q030, Hitachi Travelstar 7k100 80GB, 2x Corsair VS 1GiB RAM DDR2 PC2-5300 Network: ASUS WL500g Premium V1, 100Mbps CAT 5 UTP cables Software Configurations OSes: Windows Web Server 2008 R2, Ubuntu Server 10.04 LTS x86_64 Test machine OS: Ubuntu 10.04 LTS x86_64 Web Servers: IIS 7.5, Apache 2.2.14 + prefork MPM, worker MPM, and event MPM, Cherokee 1.0.2, Hiawatha 7.2, lighttpd 1.4.26, LiteSpeed Enterprise & LiteSpeed Standard 4.0.14, nginx 0.7.65 PHP Stack: Zend Server Community Edition 5.0.1 + PHP 5.3.2 MySQL: 5.1.41 IIS used the FastCGI SAPI through Named Pipe. Most of the settings were defaults. The rewrite rules were imported from the.htaccess files. Apache + prefork MPM used the mod_php5 SAPI. Apache + worker & event MPM used the FastCGI SAPI through mod_fcgid (reconfigured FastCGI binary that usually is used by the Zend Server GUI). Cherokee, Hiawatha, lighttpd and nginx used a Zend Server binary compatible PHP-FPM (FastCGI Process Manager) custom build. LiteSpeed used a Zend Server binary compatible PHP LSAPI custom build. Under both platforms, the Zend extensions (Optimizer+, Data Cache, Debugger) were disabled. The configurations were mostly the same. All of the web servers actively used their URL rewrite support during certain tests.

All the tested web servers had their logging capability enabled, thus the OS/ filesystem performance was also part of the actual test. Except Apache + prefork MPM + mod_php5, all the web servers used 10 PHP upstreams processes. Under Windows, the Zend Optimizer+ extension was replaced by WinCache 1.0.1. Under Ubuntu, except mod_php5, all the connections to the external PHP runtime were made through UNIX sockets. All the servers that ran under Ubuntu used the same configuration ini files. The Zend Optimizer+ bytecode accelerator was dropped in favor of XCache 1.3.0 that usually performed better. The original reason was Zend Optimizer+'s explicit refusal to work under LSAPI. None of the web servers that used PHP-FPM have built in support for FastCGI process spawning, therefore using this solution for having a dedicated PHP daemon was the right thing to do. LiteSpeed Tech implemented its own PHP SAPI, the LSAPI, a FastCGI like IPC method that provides better performance, or at least it is marketed as such. Apache was aided by mod_cache and its memory backend in order to speed up the static objects serving. The web servers used static content compression, if possible dynamic content compression. PHP's compression support wasn't used. Besides the first PHP stack tests, Apache JMeter was the only tool that did the web server stress testing. JMeter used 25 threads (clients) with 0 ramp up period for 1000 loops. That's 25,000 requests per each file. For generating a test scenario, the HTTP proxy functionality of JMeter was used in order to capture the request headers for all the requested objects. Cherokee's JMX files were used as templates for the other web servers testing. The reason for using these files is purely alphabetical as originally Apache's results were saved under the 'LAMP' directory, while the first data involved just IIS, Apache, and nginx. During the tests I took the decision to evaluate more web servers. 1000 loops / 25000 requests were executed for better accuracy. Due to the actual size and work involved in this test, multiple concurrency levels weren't benchmarked. Higher concurrency wasn't possible in certain tests (such as Drupal and Joomla) due to high number of objects and CPU bottleneck onto

the test machine. The available network bandwidth was rarely a concern during the tests as the bottleneck usually was located somewhere else. Some random details If you're questioning the authenticity of this test, there are about 6.9 GiB of XML dumps aka test results. Even compressed there's still a large amount of data, but it can be provided. The configuration details are smaller though. This is just a preliminary, performance report. A full article with all the juicy details is forthcoming. The article would be more about the experience with the web servers and less about performance. I will do better benchmarks, but with less web servers involved. This experience acts as filter for future tests. Drupal and Joomla were used because they are the definition of poor performance, thus great for benchmark tools. Even the default themes are the opposite of any decent web performance book since they load a lot of static objects. Don't get me started about the coding. The tests Synthetic Tests 1) The Free Web Hosting test is mostly a mathematical test. It actually benchmarks the PHP stack performance, without any server involvement. 2) phbench is another PHP stack test that uses more functionality from the PHP reference in order to provide a complex alternative to the Free Web Hosting test. Currently this application is under development. So far it provides just minimal functionality. This benchmark was developed by me. The result is an average of five runs. 3) Stress testing for the Free Web Hosting code. Basically a PHP script that doesn't return any response body, but it computes the same mathematical operations as the 1st test. 4) Stress testing for a small Kohana Framework application that reads all the posts from a WordPress installation, filters them through the HTML Purifier library for XSS issues, then displays the text. Application Tests Drupal, Joomla and WordPress were used as test applications. There were three distinct tests for each application: 1) Home page stress test 2) Page/Article stress test 3) Static content stress test

The results Synthetic Tests

Application Tests

Document source: PHP_web_serving_study.pdf