SlideShare a Scribd company logo
1 of 46
Fundamentals of
performance tuning PHP
on IBM i
Mike Pavlak – Zend, a Rogue Wave company
Alan Seiden – Alan Seiden Consulting, Club Seiden
July 27, 2016
2
Agenda
• PHP performance with Mike
– Basics
– Data cache
• Alan’s awesome stuff
– Apache threads
– Session locking
– Compression
– DB2 query optimization
– Persistent connections
– Unique performance tools of IBM i
• Wrap up
PHP performance
Basics
4
Don’t panic!
• Grab your towel, pocket your babelfish and …
• PHP performance is RARELY the culprit
• Many factors impact performance
– Hardware
• Processor class
• Memory
– Operating System level
• Currently support 7.1, 7.2, & 7.3
– DB2 Data Access plans
• Triangulate
– Is the whole system busy?
– Just web workload slowing?
5
Some contributors to performance
• Additive workload
• Transitional workload
• Organic growth
• Network infrastructure
• Entropy
• Get out in front of these before you need to
6
PHP log file
• Every time PHP encounters an error (warning & notice)
– Open log file in IFS
– Write error
– Close log file
• Over time, this file gets BIG!
– Have seen in excess of 1.2 GB
– How long does it take IFS to open large files? (OS level)
• Log file should be “clipped” periodically
• Delete or rename the log file
7
Rename PHP log file
• Zend Server will create more
– REN OBJ('/usr/local/zendsvr/var/log/php.log')
NEWOBJ(phplog20120306.txt)
8
Poll #1 + Results
11
Bit twiddling 101 …
• Consider this VERY carefully, what is the most expensive resource?
• Single quotes vs. double quotes
• Echo vs. Print
• Sprint() instead of “”
• Unset variables for memory management
• Close database connection if you are done unless pconnect
• $row[‘id’] is faster than $row[id];
• Static pages (html) are OK!!!
• Not everything has to be a Framework
– Fastest to slowest:
• Construct
• Function
• Static method
• Object
• Framework
12
Don’t write PHP like RPG
• RPG applications often are built with main file then chains
– SETLL then READE ORDDETAIL
• CHAIN PRODUCT
• CHAIN INVENT
• CHAIN ONPLAN
• Consider a single SQL statement
– Join files are more efficient that chains, in most cases
– SQL optimizers are genius
– Learn good indexing strategy
– Go to SQL sessions at conferences
– Ask Mike Cain, he’ll tell you!
• Great Redbooks:
– Database modernization
– RPG and Application Modernization
13
Fast CGI
• Mechanism for communicating between Apache and PHP
• Built in with 10 server jobs at the time of installation
• This should conform to concurrent processes
• Watch this as more workload is migrated to web
14
Fast CGI continued …
• Changing this
– is something that should be considered
– but not taken lightly (for example system resources)
• File to edit:
– /www/zendsvr/conf/fastcgi.conf
– SetEnv="PHP_FCGI_CHILDREN=10"
• But don’t forget …
– StartProcesses = “2” * PHP_FCGI_CHILDREN = 8 is 16 total worker
jobs
– youngiprofessionals.com/wiki/FastCGI
– systeminetwork.com/article/other-languages/fastcgi-boosts-php-
performance-on-ibm-i-66195
PHP performance
Data cache
16
Data access is powerful
• Green screen applications take DB2 access for granted
• Traditional application
– Heads down data entry
– Occasionally press <F4> for “point and shoot” window
– Performance hit ONLY when tapping <F4>
• Web page
– AJAX or probably a drop down list
– 20 input capable fields where half are drop down lists means
• 10 SQL executions run before user even starts on page
17
Standard DB2 call
• 350+ customer orders
18
DB2 call with data cache
19
Rules for using data cache
• This is a spice, not an main dish
• Types of data to cache:
– Frequently accessed, rarely changes
• List of states, warehouse codes, customer types …
– Hard to compute numbers
• YTD sales 2013, 2014, 2015 (2016 should be calculated, maybe)
• Cache expiration
– Each data element can have it’s own expiration interval
– Can expire a specific element programmatically
• Add this to maintenance application (new warehouse code)
– Can expire entire cache from admin GUI
20
Data cache – pros and cons
• Pros
– Reduce load on DB2
– Improve application response time
– Great for dashboards & data entry
• Cons
– Need to track where data elements are cached
– Develop a consistent approach to use
– May use a little RAM, but manageable
– Overuse and lack of knowledge can create a negative perspective
• White paper “A practical guide to data caching with Zend Server”
– zend.com/topics/Zend-Server-Data-Caching-Whitepaper-0106-T-WP-R1-EN.pdf
21
Poll #2 + Results
Alan’s awesome stuff
Apache threads
24
If you increase fastcgi child jobs …
• You may also need more Apache HTTP threads
• Apache’s ThreadsPerChild
– /www/zendsvr6/conf/httpd.conf
– Default: ThreadsPerChild 40
– Increase to number of expected HTTP connections
• PHP requests
• CSS
• Javascript
• AJAX requests
• Speaking of AJAX, see next slides for optimization for heavy AJAX use …
Alan’s awesome stuff
Session locking
26
Reduce session locking
• Sessions can keep track of user who is logged in, for example
– Cookie in browser tells PHP which session file to use
– session_start() initiates session in PHP
• Opens and locks the file for updating
– Located in /tmp by default
– Access data via $_SESSION
array
27
AJAX requests burden sessions
• With AJAX, one page is > 1 request
– Multiple requests (AJAX/JSON) in one page
– If PHP sessions used (session_start), all requests from one browser use
same PHP session on back-end
Above see result of numerous PHP requests launched in one
page. Note the “waterfall” shape; each waits for the previous to
finish.
28
Solution to AJAX session locking
• As soon as your application finishes writing data to the session, close it
– session_write_close() ends the lock
– You can still read $_SESSION array
• Comparison: WITHOUT session_write_close():
WITH session_write_close(): Parallel, faster! e.g. 834ms instead of 1.84ms
Alan’s awesome stuff
Compression
30
More Apache config: mod_deflate
• Called gzip or mod_deflate, the same for our purposes
• Compresses, speeds up html, javascript, css, favicons, anything text-based
31
Poll #3 + Results
33
My compression test
• http://your-server:10080/Samples/SQL_access/DB2_SQL_example.php
• Before compression: 31.0kb; loaded in 250ms
• After compression: 4.4kb; loaded in 109ms
• That’s 14% of the size and 50% of the time
34
Details of deflate/gzip compression
• Apache directives (sample)
# Load IBM i's module that performs compression
LoadModule deflate_module
/QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
# Specify content types to compress
AddOutputFilterByType DEFLATE application/x-httpd-php application/json
text/css application/x-javascript application/javascript text/html
• Tutorial on my blog:
– alanseiden.com/2010/08/13/maximize-zend-server-performance-with-
apache-compression/
• Apache reference:
– httpd.apache.org/docs/2.0/mod/mod_deflate.html
Alan’s awesome stuff
DB2 query optimization
36
DB2 query optimization
• I’ll share a couple of favorite IBM i tools
– Index Advisor
– SQL Plan Cache
• See IBM’s book IBM i Database Performance and Query Optimization
– ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzajq/rzajq.pdf
37
Index Advisor
• Now in web-based Navigator as well as thick client
• Recommends indexes across all queries
38
SQL Plan Cache
• See what queries are REALLY running, who’s running them, and how long
they take
Alan’s awesome stuff
Persistent connections
40
Use persistent connections
• On IBM i, job initialization takes longest
– Gives us auditing, logging, security
– Solution: a pool of pre-initialized jobs
• Pre-started DB2 jobs save time
– Generally run in subsystem QSYSWRK, job name QSQSRVR
– These prestart jobs can be configured with CHGPJE command
• In PHP, persistent connections reuse initialized jobs
– db2_pconnect()
– Dramatic speed boost
41
db2_pconnect() to connect
persistently
• db2_pconnect ( string $database , string $username , string $password [,
array $options ] )
• Persistent is much faster than non-persistent
– db2_pconnect can reuse connections, reducing the time needed to
connect (after the first time) to almost zero
• More information:
– “DB2 and PHP Best Practices on IBM i” at
alanseiden.com/presentations
42
DB2 server prestart job configuration
• Prestart jobs named QSQSRVR run in QSYSWRK
• Or, if remote DRDA, QRWTSRVR in QUSRWRK
• Configurable pool of jobs
CHGPJE SBSD(QSYS/QSYSWRK) PGM(QSYS/QSQSRVR)
STRJOBS(*YES) INLJOBS(xx) THRESHOLD(xx)
ADLJOBS(xx) MAXUSE(xx or *NOMAX)
• Defaults are somewhat low
– Initial jobs = 5, threshold = 2, adljobs = 2. Maxuse = 200 (*NOMAX may
be better)
• More information about QSQSRVR prestart jobs
– mcpressonline.com/tips-techniques/database/techtip-grab-control-of-
the-db2-qsqsrvr-jobs.html
Alan’s awesome stuff
Unique performance tools of IBM i
44
IBM i system tools
• WRKACTJOB is a good start
• Hover over CPU % and press F16 to sort by CPU
• Provides a general view of what’s running
• Look at call stacks of “misbehaving” jobs
45
Today, go beyond WRKACTJOB
46
Performance tools
• User-friendly, web-based tools that are either free or low cost
– Performance Data Investigator is free
– Job Watcher is low cost
• Performance Tools licensed program (GO LICPGM)
– 7.x: 5770PT1
• Install latest level of these group PTFs
– 7.1: SF99368 (HTTP Server), SF99572 (Java), SF99701 (Database),
SF99145 (Performance Tools)
– 7.2: SF99713 (HTTP Server), SF99716 (Java), SF99702 (Database),
SF99145 (Performance Tools)
– 7.3: SF99722 (HTTP Server), SF99725 (Java), SF99703 (Database)
47
Resources for IBM i performance
• Dawn May
– Hear Dawn speak at COMMON and other conferences
– ibmsystemsmag.blogs.com/i_can/
• Lab Services in Rochester
– Many experts there. I’ve worked with Stacy Benfield
– ibmsystemsmag.blogs.com/i_can/2010/08/i-can-benefit-from-ibm-
systems-lab-services-and-training.html
• IBM i on Power Performance FAQ
– ibm.co/1RdkDn4
Stay tuned for speaker info
48
Alan Seiden
• Founder of Alan Seiden Consulting and Club Seiden
• “Performance guru of PHP on IBM i”
• Leader, Zend’s PHP Toolkit for IBM i
• Alan Seiden Consulting is a team of experts available for
mentoring/troubleshooting/project advice/development.
alanseiden.com, alan@alanseiden.com
49
Zend services
• Audit – Find the holes in an application
– Performance
– Architecture
– Security
• Training – Get better
– Smart Start
– Online
• Architect Advisor – Professionals on call
• Zend Server Plus
– PHP and more!
ATTEND
Become a PHP authority.
Connect with experts.
Register now.
CELEBRATE
10 years of PHP on IBM i.
Join us for the party!
SPONSOR
Spotlight your best in
enterprise PHP.
sponsors@zendcon.com
Visit zendcon.com

More Related Content

What's hot

Create a welcoming development environment on IBM i
Create a welcoming development environment on IBM iCreate a welcoming development environment on IBM i
Create a welcoming development environment on IBM iAlan Seiden
 
Performance tuning with zend framework
Performance tuning with zend frameworkPerformance tuning with zend framework
Performance tuning with zend frameworkAlan Seiden
 
IBM i: Fertile Ground for PHP Developers
IBM i: Fertile Ground for PHP DevelopersIBM i: Fertile Ground for PHP Developers
IBM i: Fertile Ground for PHP DevelopersAlan Seiden
 
Running open source PHP applications on you IBM i
Running open source PHP applications on you IBM iRunning open source PHP applications on you IBM i
Running open source PHP applications on you IBM iProximity Group
 
PHP Installed on IBM i - the Nickel Tour
PHP Installed on IBM i - the Nickel TourPHP Installed on IBM i - the Nickel Tour
PHP Installed on IBM i - the Nickel TourRod Flohr
 
Install MariaDB on IBM i - Tips, troubleshooting, and more
Install MariaDB on IBM i - Tips, troubleshooting, and moreInstall MariaDB on IBM i - Tips, troubleshooting, and more
Install MariaDB on IBM i - Tips, troubleshooting, and moreRod Flohr
 
PHP on IBM i Tutorial
PHP on IBM i TutorialPHP on IBM i Tutorial
PHP on IBM i TutorialZendCon
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi Shlomo Vanunu
 
PHP on Windows - What's New
PHP on Windows - What's NewPHP on Windows - What's New
PHP on Windows - What's NewZendCon
 
Zend Core on IBM i - Security Considerations
Zend Core on IBM i - Security ConsiderationsZend Core on IBM i - Security Considerations
Zend Core on IBM i - Security ConsiderationsZendCon
 
Zend_Tool: Practical use and Extending
Zend_Tool: Practical use and ExtendingZend_Tool: Practical use and Extending
Zend_Tool: Practical use and ExtendingZendCon
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterpriseTaylor Lovett
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudZendCon
 
IBM Connections administration – keep your systems running the right way
IBM Connections administration – keep your systems running the right wayIBM Connections administration – keep your systems running the right way
IBM Connections administration – keep your systems running the right wayLetsConnect
 
Best and worst practices deploying IBM Connections
Best and worst practices deploying IBM ConnectionsBest and worst practices deploying IBM Connections
Best and worst practices deploying IBM ConnectionsLetsConnect
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsLetsConnect
 

What's hot (20)

Create a welcoming development environment on IBM i
Create a welcoming development environment on IBM iCreate a welcoming development environment on IBM i
Create a welcoming development environment on IBM i
 
Performance tuning with zend framework
Performance tuning with zend frameworkPerformance tuning with zend framework
Performance tuning with zend framework
 
IBM i: Fertile Ground for PHP Developers
IBM i: Fertile Ground for PHP DevelopersIBM i: Fertile Ground for PHP Developers
IBM i: Fertile Ground for PHP Developers
 
Running open source PHP applications on you IBM i
Running open source PHP applications on you IBM iRunning open source PHP applications on you IBM i
Running open source PHP applications on you IBM i
 
PHP Installed on IBM i - the Nickel Tour
PHP Installed on IBM i - the Nickel TourPHP Installed on IBM i - the Nickel Tour
PHP Installed on IBM i - the Nickel Tour
 
Install MariaDB on IBM i - Tips, troubleshooting, and more
Install MariaDB on IBM i - Tips, troubleshooting, and moreInstall MariaDB on IBM i - Tips, troubleshooting, and more
Install MariaDB on IBM i - Tips, troubleshooting, and more
 
PHP on IBM i Tutorial
PHP on IBM i TutorialPHP on IBM i Tutorial
PHP on IBM i Tutorial
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
 
PHP on Windows - What's New
PHP on Windows - What's NewPHP on Windows - What's New
PHP on Windows - What's New
 
Zend Core on IBM i - Security Considerations
Zend Core on IBM i - Security ConsiderationsZend Core on IBM i - Security Considerations
Zend Core on IBM i - Security Considerations
 
Zend_Tool: Practical use and Extending
Zend_Tool: Practical use and ExtendingZend_Tool: Practical use and Extending
Zend_Tool: Practical use and Extending
 
Resolving problems & high availability
Resolving problems & high availabilityResolving problems & high availability
Resolving problems & high availability
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Require js training
Require js trainingRequire js training
Require js training
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterprise
 
Deploying PHP apps on the cloud
Deploying PHP apps on the cloudDeploying PHP apps on the cloud
Deploying PHP apps on the cloud
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the Cloud
 
IBM Connections administration – keep your systems running the right way
IBM Connections administration – keep your systems running the right wayIBM Connections administration – keep your systems running the right way
IBM Connections administration – keep your systems running the right way
 
Best and worst practices deploying IBM Connections
Best and worst practices deploying IBM ConnectionsBest and worst practices deploying IBM Connections
Best and worst practices deploying IBM Connections
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM Connections
 

Similar to Fundamentals of performance tuning PHP on IBM i

Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The SnailMarcus Deglos
 
Hardware Provisioning
Hardware ProvisioningHardware Provisioning
Hardware ProvisioningMongoDB
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesJonathan Klein
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP PerformanceBIOVIA
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceSpark::red
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Atwix
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpSander Temme
 
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kuberneteshbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
hbaseconasia2017: Building online HBase cluster of Zhihu based on KubernetesHBaseCon
 
(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool Management(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool ManagementBIOVIA
 
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
 Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov... Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...Databricks
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsAchievers Tech
 
CI_CONF 2012: Scaling
CI_CONF 2012: ScalingCI_CONF 2012: Scaling
CI_CONF 2012: ScalingChris Miller
 
Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502kaziul Islam Bulbul
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections Adminblastpanagenda
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastNico Meisenzahl
 
Challenges of Building a First Class SQL-on-Hadoop Engine
Challenges of Building a First Class SQL-on-Hadoop EngineChallenges of Building a First Class SQL-on-Hadoop Engine
Challenges of Building a First Class SQL-on-Hadoop EngineNicolas Morales
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance DrupalJeff Geerling
 

Similar to Fundamentals of performance tuning PHP on IBM i (20)

Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The Snail
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
Hardware Provisioning
Hardware ProvisioningHardware Provisioning
Hardware Provisioning
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast Websites
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling Up
 
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kuberneteshbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
 
(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool Management(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool Management
 
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
 Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov... Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
 
CI_CONF 2012: Scaling - Chris Miller
CI_CONF 2012: Scaling - Chris MillerCI_CONF 2012: Scaling - Chris Miller
CI_CONF 2012: Scaling - Chris Miller
 
CI_CONF 2012: Scaling
CI_CONF 2012: ScalingCI_CONF 2012: Scaling
CI_CONF 2012: Scaling
 
Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections Adminblast
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections Adminblast
 
Challenges of Building a First Class SQL-on-Hadoop Engine
Challenges of Building a First Class SQL-on-Hadoop EngineChallenges of Building a First Class SQL-on-Hadoop Engine
Challenges of Building a First Class SQL-on-Hadoop Engine
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 

More from Zend by Rogue Wave Software

Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM iZend by Rogue Wave Software
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Zend by Rogue Wave Software
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)Zend by Rogue Wave Software
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Zend by Rogue Wave Software
 
Standard CMS on standard PHP Stack - Drupal and Zend Server
Standard CMS on standard PHP Stack - Drupal and Zend ServerStandard CMS on standard PHP Stack - Drupal and Zend Server
Standard CMS on standard PHP Stack - Drupal and Zend ServerZend by Rogue Wave Software
 

More from Zend by Rogue Wave Software (20)

Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Speed and security for your PHP application
Speed and security for your PHP applicationSpeed and security for your PHP application
Speed and security for your PHP application
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
To PHP 7 and beyond
To PHP 7 and beyondTo PHP 7 and beyond
To PHP 7 and beyond
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Middleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.xMiddleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.x
 
Ongoing management of your PHP 7 application
Ongoing management of your PHP 7 applicationOngoing management of your PHP 7 application
Ongoing management of your PHP 7 application
 
Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7
 
The Docker development template for PHP
The Docker development template for PHPThe Docker development template for PHP
The Docker development template for PHP
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Data is dead. Long live data!
Data is dead. Long live data! Data is dead. Long live data!
Data is dead. Long live data!
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
 
Standard CMS on standard PHP Stack - Drupal and Zend Server
Standard CMS on standard PHP Stack - Drupal and Zend ServerStandard CMS on standard PHP Stack - Drupal and Zend Server
Standard CMS on standard PHP Stack - Drupal and Zend Server
 

Recently uploaded

Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Recently uploaded (20)

Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Fundamentals of performance tuning PHP on IBM i

  • 1. Fundamentals of performance tuning PHP on IBM i Mike Pavlak – Zend, a Rogue Wave company Alan Seiden – Alan Seiden Consulting, Club Seiden July 27, 2016
  • 2. 2 Agenda • PHP performance with Mike – Basics – Data cache • Alan’s awesome stuff – Apache threads – Session locking – Compression – DB2 query optimization – Persistent connections – Unique performance tools of IBM i • Wrap up
  • 4. 4 Don’t panic! • Grab your towel, pocket your babelfish and … • PHP performance is RARELY the culprit • Many factors impact performance – Hardware • Processor class • Memory – Operating System level • Currently support 7.1, 7.2, & 7.3 – DB2 Data Access plans • Triangulate – Is the whole system busy? – Just web workload slowing?
  • 5. 5 Some contributors to performance • Additive workload • Transitional workload • Organic growth • Network infrastructure • Entropy • Get out in front of these before you need to
  • 6. 6 PHP log file • Every time PHP encounters an error (warning & notice) – Open log file in IFS – Write error – Close log file • Over time, this file gets BIG! – Have seen in excess of 1.2 GB – How long does it take IFS to open large files? (OS level) • Log file should be “clipped” periodically • Delete or rename the log file
  • 7. 7 Rename PHP log file • Zend Server will create more – REN OBJ('/usr/local/zendsvr/var/log/php.log') NEWOBJ(phplog20120306.txt)
  • 8. 8 Poll #1 + Results
  • 9. 11 Bit twiddling 101 … • Consider this VERY carefully, what is the most expensive resource? • Single quotes vs. double quotes • Echo vs. Print • Sprint() instead of “” • Unset variables for memory management • Close database connection if you are done unless pconnect • $row[‘id’] is faster than $row[id]; • Static pages (html) are OK!!! • Not everything has to be a Framework – Fastest to slowest: • Construct • Function • Static method • Object • Framework
  • 10. 12 Don’t write PHP like RPG • RPG applications often are built with main file then chains – SETLL then READE ORDDETAIL • CHAIN PRODUCT • CHAIN INVENT • CHAIN ONPLAN • Consider a single SQL statement – Join files are more efficient that chains, in most cases – SQL optimizers are genius – Learn good indexing strategy – Go to SQL sessions at conferences – Ask Mike Cain, he’ll tell you! • Great Redbooks: – Database modernization – RPG and Application Modernization
  • 11. 13 Fast CGI • Mechanism for communicating between Apache and PHP • Built in with 10 server jobs at the time of installation • This should conform to concurrent processes • Watch this as more workload is migrated to web
  • 12. 14 Fast CGI continued … • Changing this – is something that should be considered – but not taken lightly (for example system resources) • File to edit: – /www/zendsvr/conf/fastcgi.conf – SetEnv="PHP_FCGI_CHILDREN=10" • But don’t forget … – StartProcesses = “2” * PHP_FCGI_CHILDREN = 8 is 16 total worker jobs – youngiprofessionals.com/wiki/FastCGI – systeminetwork.com/article/other-languages/fastcgi-boosts-php- performance-on-ibm-i-66195
  • 14. 16 Data access is powerful • Green screen applications take DB2 access for granted • Traditional application – Heads down data entry – Occasionally press <F4> for “point and shoot” window – Performance hit ONLY when tapping <F4> • Web page – AJAX or probably a drop down list – 20 input capable fields where half are drop down lists means • 10 SQL executions run before user even starts on page
  • 15. 17 Standard DB2 call • 350+ customer orders
  • 16. 18 DB2 call with data cache
  • 17. 19 Rules for using data cache • This is a spice, not an main dish • Types of data to cache: – Frequently accessed, rarely changes • List of states, warehouse codes, customer types … – Hard to compute numbers • YTD sales 2013, 2014, 2015 (2016 should be calculated, maybe) • Cache expiration – Each data element can have it’s own expiration interval – Can expire a specific element programmatically • Add this to maintenance application (new warehouse code) – Can expire entire cache from admin GUI
  • 18. 20 Data cache – pros and cons • Pros – Reduce load on DB2 – Improve application response time – Great for dashboards & data entry • Cons – Need to track where data elements are cached – Develop a consistent approach to use – May use a little RAM, but manageable – Overuse and lack of knowledge can create a negative perspective • White paper “A practical guide to data caching with Zend Server” – zend.com/topics/Zend-Server-Data-Caching-Whitepaper-0106-T-WP-R1-EN.pdf
  • 19. 21 Poll #2 + Results
  • 21. 24 If you increase fastcgi child jobs … • You may also need more Apache HTTP threads • Apache’s ThreadsPerChild – /www/zendsvr6/conf/httpd.conf – Default: ThreadsPerChild 40 – Increase to number of expected HTTP connections • PHP requests • CSS • Javascript • AJAX requests • Speaking of AJAX, see next slides for optimization for heavy AJAX use …
  • 23. 26 Reduce session locking • Sessions can keep track of user who is logged in, for example – Cookie in browser tells PHP which session file to use – session_start() initiates session in PHP • Opens and locks the file for updating – Located in /tmp by default – Access data via $_SESSION array
  • 24. 27 AJAX requests burden sessions • With AJAX, one page is > 1 request – Multiple requests (AJAX/JSON) in one page – If PHP sessions used (session_start), all requests from one browser use same PHP session on back-end Above see result of numerous PHP requests launched in one page. Note the “waterfall” shape; each waits for the previous to finish.
  • 25. 28 Solution to AJAX session locking • As soon as your application finishes writing data to the session, close it – session_write_close() ends the lock – You can still read $_SESSION array • Comparison: WITHOUT session_write_close(): WITH session_write_close(): Parallel, faster! e.g. 834ms instead of 1.84ms
  • 27. 30 More Apache config: mod_deflate • Called gzip or mod_deflate, the same for our purposes • Compresses, speeds up html, javascript, css, favicons, anything text-based
  • 28. 31 Poll #3 + Results
  • 29. 33 My compression test • http://your-server:10080/Samples/SQL_access/DB2_SQL_example.php • Before compression: 31.0kb; loaded in 250ms • After compression: 4.4kb; loaded in 109ms • That’s 14% of the size and 50% of the time
  • 30. 34 Details of deflate/gzip compression • Apache directives (sample) # Load IBM i's module that performs compression LoadModule deflate_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM # Specify content types to compress AddOutputFilterByType DEFLATE application/x-httpd-php application/json text/css application/x-javascript application/javascript text/html • Tutorial on my blog: – alanseiden.com/2010/08/13/maximize-zend-server-performance-with- apache-compression/ • Apache reference: – httpd.apache.org/docs/2.0/mod/mod_deflate.html
  • 31. Alan’s awesome stuff DB2 query optimization
  • 32. 36 DB2 query optimization • I’ll share a couple of favorite IBM i tools – Index Advisor – SQL Plan Cache • See IBM’s book IBM i Database Performance and Query Optimization – ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzajq/rzajq.pdf
  • 33. 37 Index Advisor • Now in web-based Navigator as well as thick client • Recommends indexes across all queries
  • 34. 38 SQL Plan Cache • See what queries are REALLY running, who’s running them, and how long they take
  • 36. 40 Use persistent connections • On IBM i, job initialization takes longest – Gives us auditing, logging, security – Solution: a pool of pre-initialized jobs • Pre-started DB2 jobs save time – Generally run in subsystem QSYSWRK, job name QSQSRVR – These prestart jobs can be configured with CHGPJE command • In PHP, persistent connections reuse initialized jobs – db2_pconnect() – Dramatic speed boost
  • 37. 41 db2_pconnect() to connect persistently • db2_pconnect ( string $database , string $username , string $password [, array $options ] ) • Persistent is much faster than non-persistent – db2_pconnect can reuse connections, reducing the time needed to connect (after the first time) to almost zero • More information: – “DB2 and PHP Best Practices on IBM i” at alanseiden.com/presentations
  • 38. 42 DB2 server prestart job configuration • Prestart jobs named QSQSRVR run in QSYSWRK • Or, if remote DRDA, QRWTSRVR in QUSRWRK • Configurable pool of jobs CHGPJE SBSD(QSYS/QSYSWRK) PGM(QSYS/QSQSRVR) STRJOBS(*YES) INLJOBS(xx) THRESHOLD(xx) ADLJOBS(xx) MAXUSE(xx or *NOMAX) • Defaults are somewhat low – Initial jobs = 5, threshold = 2, adljobs = 2. Maxuse = 200 (*NOMAX may be better) • More information about QSQSRVR prestart jobs – mcpressonline.com/tips-techniques/database/techtip-grab-control-of- the-db2-qsqsrvr-jobs.html
  • 39. Alan’s awesome stuff Unique performance tools of IBM i
  • 40. 44 IBM i system tools • WRKACTJOB is a good start • Hover over CPU % and press F16 to sort by CPU • Provides a general view of what’s running • Look at call stacks of “misbehaving” jobs
  • 41. 45 Today, go beyond WRKACTJOB
  • 42. 46 Performance tools • User-friendly, web-based tools that are either free or low cost – Performance Data Investigator is free – Job Watcher is low cost • Performance Tools licensed program (GO LICPGM) – 7.x: 5770PT1 • Install latest level of these group PTFs – 7.1: SF99368 (HTTP Server), SF99572 (Java), SF99701 (Database), SF99145 (Performance Tools) – 7.2: SF99713 (HTTP Server), SF99716 (Java), SF99702 (Database), SF99145 (Performance Tools) – 7.3: SF99722 (HTTP Server), SF99725 (Java), SF99703 (Database)
  • 43. 47 Resources for IBM i performance • Dawn May – Hear Dawn speak at COMMON and other conferences – ibmsystemsmag.blogs.com/i_can/ • Lab Services in Rochester – Many experts there. I’ve worked with Stacy Benfield – ibmsystemsmag.blogs.com/i_can/2010/08/i-can-benefit-from-ibm- systems-lab-services-and-training.html • IBM i on Power Performance FAQ – ibm.co/1RdkDn4 Stay tuned for speaker info
  • 44. 48 Alan Seiden • Founder of Alan Seiden Consulting and Club Seiden • “Performance guru of PHP on IBM i” • Leader, Zend’s PHP Toolkit for IBM i • Alan Seiden Consulting is a team of experts available for mentoring/troubleshooting/project advice/development. alanseiden.com, alan@alanseiden.com
  • 45. 49 Zend services • Audit – Find the holes in an application – Performance – Architecture – Security • Training – Get better – Smart Start – Online • Architect Advisor – Professionals on call • Zend Server Plus – PHP and more!
  • 46. ATTEND Become a PHP authority. Connect with experts. Register now. CELEBRATE 10 years of PHP on IBM i. Join us for the party! SPONSOR Spotlight your best in enterprise PHP. sponsors@zendcon.com Visit zendcon.com

Editor's Notes

  1. What percentage of your mission critical software is open source? A: 0 to 25% B: 26 to 50% C: 51 to 75% D: 75%
  2. What percentage of your mission critical software is open source? A: 0 to 25% B: 26 to 50% C: 51 to 75% D: 75%
  3. POLL: How long does your slowest page take to load? (a) < 1 second (b) 1-2 seconds (c) over 2 but < 5 seconds (d) over 5 seconds
  4. What percentage of your mission critical software is open source? A: 0 to 25% B: 26 to 50% C: 51 to 75% D: 75%