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

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

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%