Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
High Performance Drupal Dedication Preface
Does Drupal Scale? Goals of This Book Supported Drupal Versions How This Book Is Organized
Performance Analysis Application Performance Infrastructure Databases Web Servers and Reverse Proxies Ongoing Testing Where to Next?
Conventions Used in This Book Using Code Examples Safari® Books Online How to Contact Us Acknowledgments
From Jeff From Narayan From Nat
1. Beginning a Performance Project
Getting Started with Performance Improvements Establishing a Performance Baseline Setting Goals for Website Performance The Many Aspects of Drupal Performance Creating a Prioritized List of Improvements
2. Frontend Performance
Limiting HTTP Requests
Audits
Image Requests Minification
Minification On the Fly Preminification for Modules/Themes Minifying During the Build Process
Compression Cacheable Headers CDNs Keep Third-Party Libraries Up to Date
jQuery Update
External Scripts Single Points of Failure (SPOFs)
3. Drupal Performance Out of the Box
Page Caching When Should You Use Page Caching?
Internal Page Caching Reverse Proxy Caching
CSS and JavaScript Aggregation Logging The Cache and Other Swappable Storage Cron Views
4. Drupal Coding for Optimal Performance
Context Matters False Optimizations Listing Entities
entityQuery() Multiple Entity Loading
Caching
Static Caching Persistent Caching
Cache chains Cache bins getMultiple()/setMultiple()/deleteMultiple() Cache tags CacheArray Render caching
Queues and Workers Cache Stampedes and Race Conditions
5. Drupal Coding for Abysmal Performance
variable_set() Abuse External Requests Sessions Excessive Cache Granularity PHP Errors Debug Code in the Code Base Development Settings
6. Verifying Changes
Analyzing Frontend Performance
YSlow and Google PageSpeed Waterfall Charts Real User Monitoring
Analyzing Application Performance
The Devel Module
Page timing Memory usage Query log
Xdebug XHProf strace
7. Infrastructure Design and Planning
Horizontal and Vertical Scaling Service Categorization Working Well Together Example Two-Layer Configuration Example Larger-Scale Infrastructure Development and Staging Environments Internal Network Layout Utility Servers High Availability and Failover Hosting Considerations Summary
8. Service Monitoring
The Importance of Monitoring Services Monitoring Alerts with Icinga
What to Monitor How to Tune Monitoring
Graphing Monitoring Data Internal Versus Remote Monitoring
9. “DevOps”: Breaking Down Barriers Between Development and Operations
Revision Control Systems
Locally Hosted or External Service Not Just for Code
Configuration Management Systems
Which System to Use
Pulling It Together: In-Depth Example with Puppet and Git Development Virtual Machines
How to Distribute Development VMs with Vagrant
Deployment Workflow
Example Workflow with Git
Deployment with Jenkins CI
10. File Storage for Multiple Web Servers
rsync GlusterFS
Example Configuration
Single NFS Server HA NFS Cluster
Example Configuration Setting Up DRBD Setting Up Heartbeat Setting Up NFS Testing
Storage Area Networks (SANs)
11. Drupal and Cloud Deployments
What Is the Cloud? Why Use the Cloud? Infrastructure Overhead Prepackaged Clouds Common Issues with Cloud Deployments and Their Mitigations
12. Failover Configuration
IP Failover Versus DNS Failover Service-Level Issues Heartbeat
Installation Configuration Usage
13. MySQL
Drupal and MySQL Engines Versions of MySQL
Oracle MySQL MariaDB Percona Server
General Configuration
Global Configuration Per-Thread Configuration Storage Engine Configuration
Replication Virtualized Deployments
14. Tools for Managing and Monitoring MySQL
Percona Toolkit Openark Kit mysqlreport Percona Monitoring Plug-Ins
15. MySQL Query Optimization
Index Basics Base Tables and Join Order Common Issues
The ORDER BY on an Unrelated Table The Useless DISTINCT (“In Case of Accidents!”) Starfish Syndrome (All LEFT JOINS) Node Access
16. Alternative Storage and Cache Backends
Cache, Lock, and Session Storage Memcache In Depth
PHP Extensions for Memcache Assigning Memcached Servers and Bins Memcache Locking and Stampede Protection What to Store in Memcache Configuring the Memcache Daemon
How to Break Your Site with Memcache
Inconsistent Caching Constant Evictions Vanishing Sessions
Entity/Field Storage
EntityFieldQuery/EntityQuery CRUD MongoDB
17. Solr Search
Performance and Scalability Considerations Integrating Solr with Drupal Solr Configuration Indexing Content Infrastructure Considerations Solr Replication Drupal Module Installation
18. PHP and httpd Configuration
APC: PHP Opcode Cache php.ini Settings PHP Apache Module Versus CGI Apache MPM Settings Prefork Thread Settings KeepAlive Cache Headers Logging Server Signature Administrative Directory or VirtualHost Nginx
Why Not Use Nginx Everywhere?
19. Reverse Proxies and Content Delivery Networks
Using a Reverse Proxy with Drupal Understanding Varnish Configuration Language
Defining a Backend Directors: Dealing with Multiple Backend Servers Built-in VCL Subroutines Customizing Subroutines
Cookies and Varnish Caching for Authenticated Users Edge-Side Includes Serving Expired Content Error Pages Memory Allocation Logging and Monitoring Varnish Sample VCL for Drupal Content Delivery Networks
Serving Static Content Through a CDN When to Use a CDN Choosing Between a CDN and a Reverse Proxy
20. Load Testing
Different Types of Load Tests Creating a Valid Test When to Test
Continuous Integration (CI) Periodic Testing Manual Targeted Testing
Interpreting Test Results Server Monitoring During Load Tests Where to Test Example Load Test Using JMeter
Global Test Settings Thread Groups Handling Cookies Login Controller Browse Controller Output Configuration Running a Test Reading Test Results
21. Where to Next?
Official Book Website High Performance Drupal Group Drupal Watchdog Revision Control with Git Varnish Configuration Management Vagrant Jenkins MySQL Performance InnoDB Index Structures
Index About the Authors Colophon Copyright
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion