Maximizing Performance and Scalability with Magento Enterprise Edition
|
|
|
- Cornelia Atkins
- 9 years ago
- Views:
Transcription
1 Enterprise Edition 1.9 Maximizing Performance and Scalability with Magento Enterprise Edition Magento White Paper Series In this Performance White Paper, we provide an overview of architecture and design considerations, optimization guidelines, and performance tuning tips for Magento Enterprise Edition as well as for the underlying hosting environment. We also provide test results from our testing of these optimization techniques in order to provide best practices for maximizing the Magento Enterprise Edition performance. ECOMMERCE PLATFORM FOR GROWTH
2 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 1 Content INTRODUCTION 1 PERFORMANCE TESTING METHODOLOGY 2 PERFORMANCE TECHNIQUES AND TEST RESULTS 3 Overview 3 Environment Components 3 Magento Enterprise Edition Configuration Components 3 Database Configuration 4 Available Memory 4 Multi-Threading 4 Built-In Caching 4 Buffers 4 Slow Queries Logging 4 InnoDB Storage 4 Web Server Configuration 5 Accelerating PHP 7 Realpath Cache Configuration 7 Bytecode Caching 7 php.ini Configuration 7 Directory Structure Optimization 8 Caching in Magento Enterprise Edition 9 System Cache 9 Full Page Cache 11 Handling Sessions 12 Magento Configuration and Setup 13 Magento Enterprise Edition cron Scripts 13 Rebuilding Indexes 13 Admin Panel Separation 13 Sales Archive 13 Checkout Performance Test Results 13 Frontend Layout Complexity 14 Number of HTTP Requests per Page 14 Using Parallel Connections 14 Media and Static Content Delivery 14 Scalability 15 Scaling Web Nodes 15 Scaling Database Nodes 16 Multi-Core Servers 17 Using Solr as a Search Engine 18 SUMMARY OF RECOMMENDATIONS 19 Introduction Introduced in 2009, the Magento Enterprise Edition is the leading enterprise-grade, feature-rich ecommerce platform built on Open Source technology. The Magento Enterprise Edition provides online merchants with unprecedented flexibility and control over the presentation, content, and functionality of their ecommerce channel, giving merchants the power to create sites that provide an unrivaled and rich online shopping experience for their customers. Magento Enterprise Edition is an open system designed to be flexible, completely scalable and configurable, easily tailored to merchants unique technical and business requirements and restraints. However, much like all flexible enterprise-grade software, custom configurations can often result in a number of places where incorrect configuration or insufficient resources can adversely affect performance. In this Performance Whitepaper, we provide an overview of architecture and design considerations, optimization guidelines, and performance tuning tips for Magento Enterprise Edition as well as for the underlying hosting environment in an effort to provide best practices for maximizing the Magento Enterprise Edition performance. APPENDICES 20 Appendix A Default Configurations 20 Appendix B Optimized Configurations 25 Appendix C Software Versions Used 27 Appendix D Test Scripts/Steps 28 Appendix E Sample Databases 30 Appendix F Magento Enterprise Edition Sample Configurations 30
3 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 2 Performance Testing Methodology Tests and metrics are crucial components of measuring and reflecting performance under any given setup. A number of tests have been conducted showing the benefit of optimizing different configurations and setups. Tests were run on dedicated servers provided by Nexcess.net, LLC ( Every tested instance was based on the RedHat Enterprise Linux x86_64 preinstalled by the Nexcess support team with the latest updates included. PHP and MySQL were installed from the Magento RPM repository. The Apache and MySQL configuration files used are included in Appendices A through C. Tests were run against three Magento Enterprise Edition installations of different catalog sizes 100 SKUs, 10,000 SKUs, and 80,000 SKUs catalogs, respectively. The Solr instance used in the corresponding test was installed on a dedicated server. Tests were performed against the following predefined test scenarios: CMS Page Test (Homepage) a default 2 column homepage with static content. Shopping and browsing Test (URL List) an average customer session activity consisting of a series of URLs that include browsing through categories and product pages. In the case of shopping, customers add products to shopping cart and browse to shopping cart page. A complete list of URLs can be found in Appendix D. Please note that the list varies according to the test and data used. Order placing Test (Checkout) a special module that provides testing every Magento Enterprise Edition URL involving into the entire checkout process. It is used to measure ordering performance. The results discussed and diagrams included in this document are based on the results of these tests performed on three Magento Enterprise Edition installations of different catalog sizes mentioned earlier. These are denoted as Magento Enterprise Edition sample data (sd), 10,000 products (10k) and 80,000 products (80k). Most tests were performed with 10, 20, 50, and 100 concurrent connections. The full-page cache test was performed with 50, 100, 200, and 500 concurrent connections. Number of concurrent connections is a number of test threads started consequently with a small delay between them and running simultaneously. Each thread executes the test plan independently of other test threads and simulates an activity of a real Magento Enterprise Edition user. The majority of figures provided in this white paper show both the CMS (homepage) performance and the average performance on abstract customer sessions on the site. The performance was calculated as the number of transactions per second. For the charts in figures 1-1, 7-2 and 8-2 where the checkout URL list was used the performance was calculated as the number of orders per hour. Magento Inc. cooperates with Nexcess.net LLC to provide Magento customers with a fully managed and customizable hosting solution to grow their business on, backed by dedicated account teams providing 24x7 support. Nexcess.net prides itself on its reputation of providing some of the world s best hosting solution coupled with outstanding and unmatched support provided by a top-notch team.
4 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 3 Performance Techniques and Test Results Overview When getting ready to deploy and configure Magento Enterprise Edition, some general technical environment components must be taken into consideration when creating an optimized Magento Enterprise Edition setup. These range from physical hardware selection and network throughput to the underlying Open Source stack, which are the key underpinnings in driving Magento Enterprise Edition and its own configuration components. Environment Components Hardware With a large number of concurrent users, having sufficient RAM is critical to handling all incoming connections. In addition, fast modern systems with multi-core CPUs, high front-side bus speed, and fast hard drives (preferably at 7200RPM and higher) will also speed up the entire application. Network Insufficient network I/O throughput and latencies in the internal network can significantly impact the performance of a multiserver setup. Outbound connection latency may cause delays for a customer while browsing the store frontend. Software Magento Enterprise Edition is a PHP application that runs on the LAMP stack. Therefore, current, up-to-date, and wellconfigured versions of the Linux Kernel, Apache, MySQL, and PHP will provide better performance results. A proper configuration of a web server, a database server, and PHP itself is required in order to achieve optimal performance results. Magento Enterprise Edition Configuration Components When trying to achieve the optimal setup, take into account the following configuration components: Using proper cache backend Handling sessions with fast storage Optimizing directory structure Using Flat Frontend Catalog Using Magento Enterprise Edition cron scripts Rebuilding indexes Using a dedicated server for the Admin backend Using sales order archiving Simplifying frontend layout Reducing the number of HTTP requests on the page Using parallel connections Delivering media and static content Scaling web and database nodes Using multi-core servers Using Solr module that performs Magento integration with Apache Solr This white paper looks at both environment components and Magento Enterprise Edition configuration components that you can modify to optimize the performance of your Magento Enterprise Edition installation. We also present the results of our testing to help you determine which might provide you with the greatest benefit for your specific installation and environment.
5 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 4 Database Configuration Proper MySQL configuration is one of the most important aspects of configuring any Magento Enterprise Edition environment. Optimizing the MySQL configuration can provide up to a 70% performance boost. An incorrect configuration can result in the web server spending more time in idle loops waiting to retrieve data from the database. The default MySQL installation, even in later versions, is configured to use far fewer resources than the average hardware can accommodate. This section goes through the most important directives in the MySQL configuration file, my.cnf, and their recommended values. Available Memory Magento Enterprise Edition uses InnoDB as its primary table storage engine type. InnoDB, unlike MyISAM, can use the in-memory buffer pool to cache table indexes and data. Less disk I/O is needed to get data from hard drives when the value of the in-memory buffer pool is set higher. A general recommendation is to set this parameter up to 80% of the available RAM for a dedicated database server. In cases where both the web server and the database are running on the same machine, it is recommended to split the entire memory pool into two parts, each having its own primary assigned portion (e.g. on a single server with 6 GB RAM installed, it can be split to have GB used by MySQL with the rest left for the web server). The key parameter in this section is innodb_buffer_pool_size, which should be set to use as much available memory as possible. Table 1. Recommended innodb_buffer_pool_size settings. Server Type Innodb_buffer _pool_size Combined web and db server, 6 GB RAM 2-3 GB Dedicated database server, 6 GB RAM 5 GB Dedicated database server, 12 GB RAM 10 GB Multi-Threading Today s industry-standard servers typically have more than 1 CPU installed with 2 or more cores each. The InnoDB engine can effectively use multiple threads to serve more concurrent connections. innodb_thread_concurrency should be set to a value that equals to or is greater than 8, even for a single CPU. The recommended value is calculated with the following equation: 2 * [numberofcpus] + 2 within the range from 8 to 64 and it depends on your max_connections number. thread_concurrency can be simply calculated as: [number of CPUs] * multiplier Where the multiplier value is between 2 and 4 and is determined by testing different values and benchmarking for the best results in your environment. Built-In Caching table_cache is the number of tables that can be simultaneously opened by MySQL. A value of 1024 will be sufficient for most, if not all, Magento Enterprise Edition sites. Having the query cache enabled may result in significant speed improvements when you have a large amount of identical queries, which is the case for any ecommerce application. The recommended values for the Magento Enterprise Edition database server are: query_cache_size 64M query_cache_limit 2M Buffers A sort buffer is used for optimizing sorting in ORDER BY and GROUP BY queries. 8M is the recommended value for the Magento Enterprise Edition database. Slow Queries Logging Logging slow queries is useful for debugging purposes, but it should be disabled in production use. InnoDB Storage The InnoDB engine works with a single data storage file that usually grows in time. It is a good idea to have the engine's initial state configured to be at least twice as large as the Magento Enterprise Edition database size, and innodb_autoextend_increment should be set to a fairly high value in order to avoid frequent data file extending operations. InnoDB supports transaction operations by using transaction log files. Transaction log files are generally configured in groups of two. The bigger the size of a transaction log file the less often it performs I/O operations on primary storage files. However, in case a database restore is required, more time will be needed. Do not use multiple InnoDB tablespaces unless you are sure you know the benefits for your particular hardware and environment. thread_cache_size allows caching of client's threads when a client disconnects and reusing them when new connections are created. The recommended value is
6 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 5 Web Server Configuration The most commonly used Apache configuration provides PHP support with mod_php. This Apache configuration loads a large number of modules. However, most of these modules are not necessary for running Magento Enterprise Edition. This becomes more relevant in a multi-server setup where different tasks can be split up into different nodes and each node has to be configured to perform its specific task the best. The minimum required list of Apache modules includes the following: mod_expires generates content expiration and cache control headers mod_deflate compresses content before it is delivered to the client mod_mime associates the requested file with its type and behavior mod_dir serves directory index files mod_rewrite supports Search Engine Friendly URL s mod_authz_host limits access to specific files mod_authz_user might be required in a staging environment to set up password authentication, but on a live site it is not necessary If you are running other web applications on the same server, consult which Apache modules are required for them. When a web server is under a heavy load, keeping persistent connections becomes disadvantageous, thus the KeepAlive directive should always be disabled. mod_deflate allows your server to compress content before sending it to the browser. Magento Enterprise Edition.htaccess file already includes necessary settings to enable the compression. Make sure to uncomment this section in order to decrease the page load time. Additionally, you can take advantage of eliminating directory structure scans for the.htaccess files by moving all.htaccess directives into the appropriate <Directory> sections of the main httpd.conf file. In order to reduce the I/O throughput on Apache web nodes in a multi-server setup, it is advisable to use a load balancer, which can handle all logging activity instead of having that activity handled by the Apache backend servers. As the server configuration chosen for the performance testing has rather big RAM size, for web server optimization we intentionally used the web server configuration with RAM reduced down to 8 GB. All the following tests were performed using optimized configurations for both Apache and MySQL. With all unused Apache modules disabled by commenting out the corresponding LoadModule lines in httpd.conf, it is possible to cut memory consumed by Apache, which will allow more concurrent connections to be handled with the same amount of RAM. Another important web server configuration component is setting an optimal number for running Apache processes. The best method to do this is to create the required number of Apache processes when the web server is started. This number should be calculated by measuring the memory amount consumed by Apache under the maximum load. This is currently the best threading method as mpm_worker cannot be safely used with PHP and the process of forking every new Apache child in the mod_prefork mode is an expensive operation. Also, note that the ServerLimit and MaxClients values should be specified explicitly to prevent running out of physical memory and going into a swap file, which causes a severe degradation of web server performance. MaxRequestsPerChild can be set to the default value of 4000.
7 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 6 Figure 1-1: Default Environment and Magento Enterprise Edition setup vs. Optimized MySQL and Apache configuration for Shopping scenario test. Results: MySQL optimization provides a performance increase on larger databases. Figure 1-2: Default Environment and Magento Enterprise Edition setup vs. Optimized MySQL and Apache configurationorder placing scenario test. Results: Similar to the transaction performance, MySQL optimization provides a product order performance increase on larger databases.
8 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 7 Accelerating PHP PHP is an interpreted scripting language. The process of running a PHP script includes the following steps: Reading a script file from the hard drive Parsing and compiling bytecode Running the bytecode Realpath Cache Configuration File I/O optimization is not limited to using faster hard drives only. To provide better optimization, increasing the default realpath_cache_size and realpath_cache_ttl values in the php.ini settings is highly recommended. According to our tests, the recommended values on production servers are as follows: realpath_cache_size=32k realpath_cache_ttl=7200 Bytecode Caching The process of reading PHP scripts from disk and compiling them can be eliminated by enabling PHP accelerators. PHP accelerators cache compiled bytecode, which results in less file and system I/O. The well-known eaccelerator and APC PHP accelerators are tested and partially compatible with Magento Enterprise Edition. Their built-in shared memory can also be used as Magento Enterprise Edition cache storage, which will be covered later in this document. Only eaccelerator versions earlier than can been used with Magento. php.ini Configuration In php.ini, you can enable only the minimum set of PHP extensions required to run Magento Enterprise Edition to reduce the memory usage and speed up the PHP performance. The necessary extensions are as follows: PDO_MySQL simplexml mcrypt hash GD DOM iconv2 SOAP (if the Magento Webservices API is to be used) In case of using APC bytecode cache, the modification time check option (apc.stat) must be disabled. If you are running other PHP applications on the same server, consult which PHP extensions are required for them. All the following tests were performed using the APC bytecode cache enabled. Figure 2: Default setup vs. eaccelerator vs. APC for CMS (Homepage) and shopping scenario tests. Results: Adding a PHP accelerator provides a performance boost from 20% to 100% when different PHP files are used. According to our tests, APC is 3-5% better than eaccelerator in the bytecode caching mode.
9 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 8 Directory Structure Optimization The following test was performed with APC bytecode cache feature disabled, there is no sense to use both APC bytecode cache and Directory Structure Optimization feature at the same time. Optimizing the directory structure can also help finetune Magento Enterprise Edition performance in cases where it s not possible to use APC bytecode cache. It is highly recommended to use the Zend Framework distribution bundled within Magento Enterprise Edition as it is adjusted to significantly reduce the number of system calls required to locate a file in the directory structure. This is accomplished by commenting out all extra require_once directives within the configuration file. Additional require_once calls are not required because Magento Enterprise Edition implements its own autoload function that handles all necessary file requests on demand. In addition, recent Magento Enterprise Edition versions (since version 1.3.x) include the Magento Enterprise Edition Compilation Module (Mage_Compiler) that provides extra optimization by placing all files in one directory and combining the most used classes in a few single files. Figure 5: Compilation enabled vs. Compilation disabled. Conclusion: Enabling Magento Enterprise Compilation Module provides a 10-15% additional performance boost
10 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 9 Caching in Magento Enterprise Edition System Cache Magento Enterprise Edition can cache frequently used data using various cache backends. Using a cache backend will always improve the performance of Magento Enterprise Edition. By default, when installed, Magento Enterprise Edition is set to use the file system as a cache backend. While the file system cache is the most reliable storage with unlimited size, it does not provide the best performance. Magento Enterprise Edition v. 1.9 can also work with the following cache backends that provide performance better than that of the file system cache backend: APC a bytecode cache for PHP which also provides a shared memory storage for application data Memcached a distributed, high-performance caching system Once the cache is enabled and one of the abovementioned shared memory backends is used, Magento automatically uses a TwoLevel cache backend (see kends.html for more information). In which case, the specified cache backend is used as a fast cache. The file system cache backend is used as a slow cache for single web node environments, and the MySQL database is used as a slow cache for multiple web node environments. This is fully customizable and can be easily set in app/etc/local.xml, as shown in the Appendix F. When using APC, the Source Code Compiler must be disabled. Make sure that if you are using APC or memcached as backends, you configure each of them with enough memory to include all cached data; otherwise, a backend may purge the required cache hierarchy structure. Figure 3-1: Caching enabled vs. Caching disabled Results: It may be required to disable the built-in Magento Enterprise Edition cache (that is, by default, enabled after the installation) during site development. But be sure that caching is enabled on production sites. Our test show that disabled cache makes the store frontend 5-6 times slower and less responsive under a load.
11 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 10 Figure 3-2: Cache backends: file system vs. APC vs. Memcached. Results: APC gives the best results, which are 3-5% better than the file system backend results. However, using Memcached is recommended for installations which involve multiple web nodes, because, in case of multiple web nodes, the APC and file system cache backends need additional administration for synchronizing data between nodes.
12 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 11 Full Page Cache Magento Enterprise Edition can cache entire page contents and return statically stored (X)HTML files rather than building pages dynamically for each request. Only CMS, category, and product view pages support full page caching. From the tests performed, Full page cache stores and uses generated full web page for forthcoming users. The presence of the cache significantly improves the performance of the website by up to 9.5 times where the hardware experience a decreasing load during regular surfing through the website The homepage is the CMS page that is accessed most frequently. Full Page Cache allows the web server to significantly increase the performance on pages that can be cached statically. Figure 4-1: Full Page Cache on the CMS (Homepage): enabled vs. disabled. Results: Our tests show that with Full Page Cache enabled, the performance increase for the homepage exponentially depends on the number of simultaneous concurrent connections. Increasing the number of concurrent connections from 10 to 100 leads to the homepage performance increase up to 4.7 times. Figure 4-2: Full Page Cache for browsing and shopping scenarios : enabled vs. disabled. Results: The performance behavior for thecachable URLs resembles tests for the CMS (homepage), i.e. increasing the number of concurrent connections from 10 to 100 leads to the performance increase up to 9.5 times; while for the standard set of URLs, the performance gives 150% increase.
13 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 12 Handling Sessions Magento Enterprise Edition uses PHP sessions to store customer session data. The default method is to use the file system storage, which works well if you are using a single web server. Its performance can be improved by configuring the tmpfs in-memory partition to avoid extra hard drive I/O activity. In a clustered environment with multiple web servers, the first option for handling sessions is to use a load balancer capable of associating client requests with specific web nodes based on the client IP or the client cookies. If you are in a clustered environment and not using a load balancer capable of the above-mentioned, it is necessary to share the session data among all web servers. Magento Enterprise Edition supports two additional session storage types that can be used in this case. Though fully supported, storing session data in the database is not recommended as it puts an additional load on the main database, and therefore, requires a separate database server to efficiently handle multiple connections under load in most cases. However, storing session data in the database provides an advantage in case it's important to keep user sessions in case of any server crashes. Database-driven sessions will not be damaged when one or all servers in the cluster are down. The memcached session storage is free of these disadvantages. The memcached service can be run on one of the cluster servers to provide fast session storage for all web nodes of the cluster. Though, because of extra overhead processing compared to raw file system session files, the memcached session storage does not show any performance improvements when used in a single server configuration.
14 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 13 Magento Configuration and Setup Magento Enterprise Edition cron Scripts There are some activities in Magento Enterprise Edition that must be scheduled with cron. For example, catalog price rules generate price indexes for three days ahead when a rule is applied from the Admin Panel. In order ensure catalog price rules do not expire in three days, they must be refreshed by the Magento Enterprise Edition cron scripts on a daily basis. There are also other scheduled tasks in Magento Enterprise Edition, and it is important not to configure all of them to run simultaneously as it may overload the master database. Note on Scheduled Backups: It is a general best practice to run important data backup on servers on a daily basis. Though it is not under the Magento Enterprise Edition scope, make sure that on your server the system backups are run at a time when the number of active customers and the server load are minimal. Rebuilding Indexes The process of rebuilding the Magento Enterprise Edition index tables, for example, layered navigation indexes or catalog price rules indexes, is a resource consuming operation. Do not rebuild indexes during the period of highest customer activity. Magento Enterprise Edition includes content staging functionality that can be used for previewing and scheduling catalog and store updates at an appropriate time. In the future Magento Enterprise Edition versions, there will be an option to use a separate database for calculating index data in order not to affect the performance of the store. Admin Panel Separation Admin Panel operations in general consume more resource than frontend activities. Often they require increasing PHP memory limits or having extra extensions compiled into PHP. Therefore, having a dedicated admin server can help make Admin Panel operations faster while not impacting the frontend configuration and performance. This separation can be done by specifying different base URL s on a global level for the Admin Panel than for the frontend websites and stores. Each separate domain name can then be served by a separate server. Sales Archive As it has been previously noted, generally backend operations require more server resources, especially when the administrator works with orders. A huge number of orders being processed by a Magento Enterprise Edition installation can be the cause of server performance failure. However, most of the orders are just listed in the backend; they do not need to be actively processed by the administrator. Sales archiving introduced in Magento Enterprise Edition v1.8 helps the administrator list and work only with those orders that are currently in use. The rest of the orders are available in the archive; thus, Magento does not need to manipulate old order data when processing daily orders. This lets the administrator perform order management operations faster and reduces the overall server load for administration routines. Sales archive operation separates the sales entity grid database tables. While the table for archived orders contains a full set of data, the table for active orders contains only the records corresponding to active orders. This decreases the amount of data in the grid tables and improves the performance of sorting/filtering operations in the admin grids. Checkout Performance Test Results Prior to Enterprise Edition v1.8, the checkout process contained two large database transactions one for the customer increment calculation (if a new customer is created during the checkout) and the other to check and decrease the stock items quantity. During heavy traffic times, this could cause delays on the frontend for customers attempting to checkout. Only one checkout at the same time was possible. In Enterprise Edition v1.8 and later versions the checkout process has been significantly refactored. So, the stock operations transaction has been separated into smaller quicker database requests, and the customer increment logic has become optional (it is disabled by default now). Due to this change, locks on the database tables used for the checkout are avoided, and simultaneous checkouts for many customers are possible. Magento Enterprise Edition v. 1.8 has also introduced a flat structure for the Sales module data, which results in an additional checkout performance increase.
15 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 14 Frontend Layout Complexity The Magento Enterprise Edition page generation process implies building a block object hierarchy specified by the frontend theme layout. The fewer is the number of blocks on a page, the less time is required to instantiate block objects. Default Magento Enterprise Edition themes were designed to represent all Magento Enterprise Edition features. The themes introduce a large number of small blocks on most pages. A specific store will benefit from a custom-built theme that facilitates practical customer experience while taking into account business and product specifics. Customizing a proper design theme, simplifying the layout structure, and combining small blocks can make the page generation time 4-5% faster than using of a complex layout with a lot of blocks on the page. Number of HTTP Requests per Page In order to improve page load and processing time, it is important to reduce the number of HTTP requests per page. Magento Enterprise Edition allows combining multiple JavaScript files and style sheets into a smaller number of files. This process is fully under the control of a theme developer who implements it through the flexible system of theme layouts instead of directly including the JavaScript files from within the templates. The following is the example of how the number of JavaScript files can be properly reduced: <reference name="head"> <action method="addjs"> <script>custom_js/gallery.js</script> </action> <action method="addjs"> <script>custom_js/intro.js</script> </action> </reference> Using Parallel Connections Browsers can load page elements in parallel. Specifying different domains for media, skin, and JavaScript URLs in the Magento Enterprise Edition configuration (System Configuration GENERAL Web) will help speed the page rendering time in the browser, as most browsers limit the number of downloads to 2-4 parallel threads per domain name. Other web page design recommendations are beyond the scope of this document. You can find the detailed list of web site design best practices at the Yahoo Developer Network at Media and Static Content Delivery Though Apache is a fast and reliable web server, there are other web server options that are known to more efficiently serve static content and media files which consumes less memory and CPU time. Among the widely used are nginx, lighttpd, and tinyhttpd. These are the multiplexing web servers which do not have built-in scripting languages support but can handle thousands of simultaneous connections per server. Static content delivery can be improved by using a caching reverse proxy, such as Squid or an HTTP accelerator like Varnish. A reverse proxy can locally cache the content received from Apache in order to reduce the load on the Apache backends. Another way to reduce your server load and to get smaller network latencies is the use of content delivery networks (CDN). Most CDNs support pushing media content through a simple API and can be integrated with the Magento Enterprise Edition backend quite easily. The previous layout file example combines the two scripts in a single file that will be added to the page with one request to js/index.php?c=auto&f=,custom_js/gallery.js,custom_j s/intro.js.
16 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 15 Scalability Magento Enterprise Edition is designed to be able to take advantage of a multi-server setup in a clustered environment. Web nodes are not limited to be of exactly the same type. There may be different nodes, such as frontend servers, static content and media servers, and a separate admin panel server each performing different tasks. Scaling Web Nodes Magento Enterprise Edition can be scaled over any number of additional web servers. This allows handling a bigger number of concurrent requests by simply introducing new web nodes when the number of page views and visitors grows. Doubling the number of web nodes can provide a performance increase of over 90%. Figure 7-1: Single frontend server vs. multiple frontend servers Results: Enabling a second frontend web server almost doubles the number of requests that can be handled by this setup. Introducing every new web node adds up to a 95-99% performance increase with higher concurrencies. Figure 7-2: Single frontend server vs. multiple frontend servers Results: Enabling a second frontend web server almost doubles the number of requests that can be handled by this setup. Introducing every new web node adds up to a 95-99% performance increase with higher concurrencies.
17 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 16 Scaling Database Nodes Magento Enterprise Edition works with a database in a manner that easily allows separating database connections for read and write activities. Each particular module can use its own connections if needed. This is fully customizable and can be easily set in app/etc/local.xml as shown in Appendix F. In case of separating read and write database operations, there must be a master database instance that processes only write requests, and a slave database instance that is used for reading data. There must be an instant replication organized between the master and the slave instances. The replication speed is a critical parameter and must be as high as possible.
18 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 17 Multi-Core Servers As it is expected, the test results show better performance on servers with more CPU cores per server as can be seen from the following figures. Figure 8-1: 1-core/4GB virtual server (SATA HDD) vs. 2-core/8GB virtual server (SATA HDD) vs. 8- core/16gb dedicated server (SAS 15K, RAID1). Conclusion: A low-level single-core server with a single SATA hard drive and 4GB RAM installed is able to handle about 9 trans/sec on homepage tests and up to 4 trans/sec during an average customer session. Adding more cores and faster hard drives configured in a RAID array allows for the handling of more page requests. Dualcore server with SATA hard drive is able to handle 18 trans/sec on homepage and up to 7 trans/sec on customer session URL test, while 8-core server with SAS 15K hard drives in RAID1 array can handle 38 trans/sec on homepage and about 17 trans/sec on customer session URL test with hundreds of concurrent customer sessions which allows for the serving of more page views for more visitors. In our tests, we were able to get the same requests per second with 400 concurrent sessions, but to keep page response time low, one might consider adding another web node for serving such traffic. Figure 8-2: 1-core/4GB virtual server (SATA HDD) vs. 2-core/8GB virtual server (SATA HDD) vs. 8- core/16gb dedicated server (SAS 15K, RAID1). Conclusion: A low-level single-core server with a single SATA hard drive and 4GB RAM installed is able to handle about 6000 orders/hour during an average customer session. Adding more cores and faster hard drives configured in a RAID array allows for the handling of more orders per hour. Dual-core server with SATA hard drive is able to handle orders/hour on customer session URL test, and, finally, 8-core server with SAS 15K hard drives in RAID1 array can handle up to orders/hour on customer session URL test.
19 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 18 Using Solr as a Search Engine Since v1.8, Magento Enterprise Edition supports the Apache Solr search engine and provides the Enterprise_Search module that allows choosing between the built-in MySQL fulltext search engine and the Solr. Either of these two search engines can be selected in the backend configuration under System Configuration CATALOG Catalog Catalog Search: MySql Fulltext Solr provides better performance on larger catalogs with more SKUs, thus it is recommended to use Solr when possible, unless you are not running a store with a small catalog. Solr is not built into Magento and must be installed and set up separately. Once installed, the integration of Magento and Solr is simply a set of configuration settings in the Admin Panel. The fulltext search is used by default in case Solr is not available, not effective, or cannot be used in the current Magento configuration. However, Apache Solr Figure 9-1: Search engine performance for search: database search engine vs. Solr. Results: Enabling the Solr integration gives the search performance increase up to 14% on bigger database and higher concurrent connections number. As a side-effect, using Solr significantly increases the search quality. Figure 9-2: Search engine performance for catalog filter: database search engine vs. Solr Results: Enabling the Solr integration gives the catalog navigation (filtering) performance increase up to 25% on bigger database and higher concurrent connections number.
20 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 19 Summary of Recommendations Without a doubt, planning, deploying, and configuring your Magento Enterprise Edition environment requires great attention to detail in order to get the best performance out of it. Considerations on physical platform, network performance, stack configuration and fine-tuning as well as a suitable Magento Enterprise Edition installation each play an important role in ensuring that you get the best performance possible out of your unique setup. The following is the review of some key points discussed in this white paper. We strongly recommend that you optimize your MySQL and Apache configurations. Doing so can provide a 55-70% performance increase, especially on dynamic pages. The default MySQL and Apache setups are configured to use far fewer resources than the average hardware can provide and are not able to handle a high number of concurrent customer sessions, which can result in unpredictable and sometimes erratic server loads and behavior. Adding a PHP accelerator is another important aspect of configuring your Magento Enterprise Edition environment. eaccelerator shows good results with 40%-600% increase. According to our tests, APC is even more efficient showing an additional 15-20% performance boost over eaccelerator. Enabling caching on production sites is vital. The disabled cache can make the web store frontend 5-6 times slower and less responsive under load. When configuring Magento Enterprise Edition on a single server, consider using default file system cache backend or APC fast storage cache backend, which provide similar results. However, in case of using several web nodes, it is better to switch to the memcached cache backend. If used on multiple web nodes, APC and file system cache backends need additional administration to synchronize data between nodes. Enabling the Full Page Cache feature can improve the Magento Enterprise Edition performance for any page with static content (homepage or other CMS pages), so if you considered having the homepage static and using several landing pages for your website, it is highly recommended to turn Full Page Cache on. In a single server setup, there is no need to change the default file system session storage as it shows the best results. However, in clustered environment, if the used load balancer cannot associate client requests with specific web nodes based on the client IP or the client cookies, it may be required to use either the memcached or the database shared session storage. The memcached session storage shows the results that are close to those of the default storage or even 1-2% worse. The database session storage should be used in a clustered environment only if the memcached storage cannot be used for some reasons. Installing the Magento Enterprise Edition Compilation Module and enabling compilation can give 10-15% additional performance boost. If you re able to install and set up the Apache Solr search engine, it is recommended to have the Solr search engine support enabled in the catalog search configuration options. The search quality increases significantly even in case the product list is short and it gives only a small performance increase (not more than 25% on catalog navigation and 14% on search). Using modern multi-core CPUs and fast hard drives improves the results even more. A low-level single-core server with a single SATA hard drive and 4GB RAM installed is able to handle about 9 trans/sec on homepage tests and up to 4 trans/sec during an average customer session. Dual-core server with SATA hard drive is able to handle 18 trans/sec on homepage and up to 7 trans/sec on customer session URL test, while 8-core server with 15K hard drives in RAID1 array can handle 38 trans/sec on homepage and about 17 trans/sec on customer session URL test with hundreds of concurrent customer sessions which allows for the serving of more page views for more visitors. The Magento Enterprise Edition is the leading Open Source ecommerce platform built on solid technology that gives you the flexibility, configurability, and performance you need to develop an online channel that suits the unique needs of your business. Attention to these configuration details can go a long way, and with a little bit of fine-tuning, the Magento Enterprise Edition s rock solid stability and performance give you the ultimate value when it comes to serving as many customers as richly and as cost-effectively as possible, while providing you with the edge necessary to differentiate yourself from, and stay ahead of, your competitors.
21 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 20 Appendices Appendix A Default Configurations Apache Web Server Configuration ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 Listen 80 LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule info_module modules/mod_info.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule file_cache_module modules/mod_file_cache.so LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule cgi_module modules/mod_cgi.so LoadModule version_module modules/mod_version.so User apache Group apache
22 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 21 ServerAdmin UseCanonicalName Off DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> DirectoryIndex index.html index.html.var AccessFileName.htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> TypesConfig /etc/mime.types DefaultType text/plain <IfModule mod_mime_magic.c> # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> HostnameLookups Off ErrorLog logs/error_log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined ServerSignature On Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif.bin.exe AddIcon /icons/binhex.gif.hqx AddIcon /icons/tar.gif.tar AddIcon /icons/world2.gif.wrl.wrl.gz.vrml.vrm.iv AddIcon /icons/compressed.gif.z.z.tgz.gz.zip AddIcon /icons/a.gif.ps.ai.eps AddIcon /icons/layout.gif.html.shtml.htm.pdf AddIcon /icons/text.gif.txt AddIcon /icons/c.gif.c AddIcon /icons/p.gif.pl.py AddIcon /icons/f.gif.for AddIcon /icons/dvi.gif.dvi AddIcon /icons/uuencoded.gif.uu AddIcon /icons/script.gif.conf.sh.shar.csh.ksh.tcl AddIcon /icons/tex.gif.tex AddIcon /icons/bomb.gif core
23 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 22 AddIcon /icons/back.gif.. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif ReadmeName README.html HeaderName HEADER.html IndexIgnore.??* *~ *# HEADER* README* RCS CVS *,v *,t AddLanguage ca.ca AddLanguage cs.cz.cs AddLanguage da.dk AddLanguage de.de AddLanguage el.el AddLanguage en.en AddLanguage eo.eo AddLanguage es.es AddLanguage et.et AddLanguage fr.fr AddLanguage he.he AddLanguage hr.hr AddLanguage it.it AddLanguage ja.ja AddLanguage ko.ko AddLanguage ltz.ltz AddLanguage nl.nl AddLanguage nn.nn AddLanguage no.no AddLanguage pl.po AddLanguage pt.pt AddLanguage pt-br.pt-br AddLanguage ru.ru AddLanguage sv.sv AddLanguage zh-cn.zh-cn AddLanguage zh-tw.zh-tw LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-br ru sv zh-cn zh-tw ForceLanguagePriority Prefer Fallback AddDefaultCharset UTF-8 AddType application/x-compress.z AddType application/x-gzip.gz.tgz AddHandler type-map var AddType text/html.shtml AddOutputFilter INCLUDES.shtml Alias /error/ "/var/www/error/" <IfModule mod_negotiation.c> <IfModule mod_include.c> <Directory "/var/www/error"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> </IfModule> </IfModule> BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs/1.0" redirect-carefully BrowserMatch "^XML Spy" redirect-carefully
24 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 23 BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully MySQL Configuration [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 max_connections=100 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid PHP Configuration [PHP] engine = On zend.ze1_compatibility_mode = Off short_open_tag = On asp_tags = Off precision = 14 y2k_compliance = On output_buffering = 4096 zlib.output_compression = Off implicit_flush = Off unserialize_callback_func= serialize_precision = 100 allow_call_time_pass_reference = Off safe_mode = Off safe_mode_gid = Off safe_mode_include_dir = safe_mode_exec_dir = safe_mode_allowed_env_vars = PHP_ safe_mode_protected_env_vars = LD_LIBRARY_PATH disable_functions = disable_classes = expose_php = On max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) error_reporting = E_ALL display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off variables_order = "EGPCS" register_globals = Off register_long_arrays = Off register_argc_argv = Off auto_globals_jit = On post_max_size = 8M magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off auto_prepend_file = auto_append_file = default_mimetype = "text/html"
25 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 24 doc_root = user_dir = enable_dl = On file_uploads = On upload_max_filesize = 2M allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 [Syslog] define_syslog_variables = Off [mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ; For Win32 only. ;sendmail_from = [email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = /usr/sbin/sendmail -t -i [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [MySQL] mysql.allow_persistent = On mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_links = -1 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [msql] msql.allow_persistent = On msql.max_persistent = -1 msql.max_links = -1 [PostgresSQL] pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = 0 pgsql.log_notice = 0 [Sybase] sybase.allow_persistent = On sybase.max_persistent = -1 sybase.max_links = -1 sybase.min_error_severity = 10 sybase.min_message_severity = 10 sybase.compatability_mode = Off [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1
26 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 25 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = 0 [Informix] ifx.default_host = ifx.default_user = ifx.default_password = ifx.allow_persistent = On ifx.max_persistent = -1 ifx.max_links = -1 ifx.textasvarchar = 0 ifx.byteasvarchar = 0 ifx.charasvarchar = 0 ifx.blobinfile = 0 ifx.nullformat = 0 [Session] session.save_handler = files session.save_path = "/var/lib/php/session" session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.bug_compat_42 = 0 session.bug_compat_warn = 1 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 5 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatability_mode = Off mssql.secure_connection = Off [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400 Appendix B Optimized Configurations Apache Web Server Configuration ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 StartServers 100 MinSpareServers 100 MaxSpareServers 150 ServerLimit 256
27 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 26 MaxClients 256 MaxRequestsPerChild 4000 Listen *:80 LoadModule authz_host_module modules/mod_authz_host.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule mime_module modules/mod_mime.so LoadModule dir_module modules/mod_dir.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule log_config_module modules/mod_log_config.so User apache Group apache ServerAdmin #ServerName UseCanonicalName Off DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> AccessFileName.htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> TypesConfig /etc/mime.types DefaultType text/plain <IfModule mod_mime_magic.c> #MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> HostnameLookups Off ErrorLog logs/error_log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined ServerSignature On AddDefaultCharset UTF-8 AddType application/x-compress.z AddType application/x-gzip.gz.tgz LoadModule php5_module modules/libphp5.so AddHandler php5-script.php AddType text/html.php DirectoryIndex index.php MySQL Configuration [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0
28 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 27 max_connections = 1000 max_connect_errors = 10 table_cache = 1024 max_allowed_packet = 16M max_heap_table_size = 64M sort_buffer_size = 8M join_buffer_size = 8M thread_cache_size = 8 thread_concurrency = 8 query_cache_size = 64M query_cache_limit = 2M tmp_table_size = 64M key_buffer_size = 32M read_buffer_size = 2M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_max_extra_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover innodb_additional_mem_pool_size = 16M innodb_log_buffer_size = 8M innodb_log_file_size = 512M innodb_log_files_in_group = 2 innodb_buffer_pool_size = 10G innodb_data_file_path = ibdata1:1g;ibdata2:512m:autoextend innodb_autoextend_increment=512 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid PHP Configuration (complementary to the default configuration) Required extensions extension=bcmath.so extension=curl.so extension=dom.so extension=gd.so extension=mcrypt.so extension=memcache.so extension=mhash.so extension=pdo.so extension=pdo_mysql.so Extensions from the default setup that are no longer needed in the optimized configuration ;;;extension=dbase.so ;;;extension=json.so ;;;extension=mysqli.so ;;;extension=mysql.so ;;;extension=pdo_sqlite.so ;;;extension=sqlite.so ;;;extension=wddx.so ;;;extension=xmlreader.so ;;;extension=xmlwriter.so ;;;extension=xsl.so ;;;extension=zip.so APC-specific configuration used where APC is enabled extension=apc.so apc.shm_size=256 apc.num_files_hint=10000 apc.user_entries_hint=10000 apc.max_file_size=5m eaccelerator-specific configuration used where eaccelerator is enabled zend_extension="/usr/lib64/php/modules/eaccelerator.so" eaccelerator.shm_size = "256" Appendix C Software Versions Used CentOS release 5.5 (Final) Linux el5 SMP x86_64 GNU/Linux
29 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 28 mysql PHP php-pecl-apc-3.1.3p1-1 php-eaccelerator Apache/2.2.3 memcached SIEGE 2.69 Magento Enterprise Edition Appendix D Test Scripts/Steps General URL List for Testing with Sample Data $(BASEURL) $(BASEURL)electronics/cell-phones.html $(BASEURL)electronics/cell-phones.html?price=2%2C100 $(BASEURL)electronics/cell-phones.html?price=2%2C100&color=23 $(BASEURL)electronics/cell-phones/samsung-mm-a900m-ace.html $(BASEURL)checkout/cart/add/product/20/ $(BASEURL)apparel.html $(BASEURL)cn-clogs-beach-garden-clog.html $(BASEURL)checkout/cart/ $(BASEURL)checkout/onepage/ $(BASEURL)catalogsearch/result/?q=ink&x=0&y=0 $(BASEURL)apparel.html?cat=17 $(BASEURL)apparel.html?price=1%2C100&cat=17 $(BASEURL)the-get-up-kids-band-camp-pullover-hoodie.html $(BASEURL)checkout/cart/add/product/39/ $(BASEURL)apparel/shirts.html General URL List for Testing with and SKUs $(BASEURL) $(BASEURL)category-3.html $(BASEURL)category-3.html?cat=28 $(BASEURL)category-3.html?cat=28&price=2%2C1000 $(BASEURL)category-3/pr html $(BASEURL)checkout/cart/add/product/2489/ $(BASEURL)category-273.html $(BASEURL)category-273/ b7h.html $(BASEURL)checkout/cart/ $(BASEURL)checkout/onepage/ $(BASEURL)catalogsearch/result/?q=345&x=0&y=0 $(BASEURL)category-273.html?cat=427 $(BASEURL)category-273.html?cat=427&ab_host=303 $(BASEURL)category-273/r1256ap.html $(BASEURL)checkout/cart/add/product/1354/ $(BASEURL)category-273/category-309.html URL List of Cachable Pages Only for Testing with Sample Data $(BASEURL) $(BASEURL)electronics/cell-phones.html $(BASEURL)electronics/cell-phones.html?price=2%2C100 $(BASEURL)electronics/cell-phones.html?price=2%2C100&color=23 $(BASEURL)electronics/cell-phones/samsung-mm-a900m-ace.html $(BASEURL)apparel.html $(BASEURL)cn-clogs-beach-garden-clog.html $(BASEURL)apparel.html?cat=17 $(BASEURL)apparel.html?price=1%2C100&cat=17 $(BASEURL)the-get-up-kids-band-camp-pullover-hoodie.html $(BASEURL)apparel/shirts.html $(BASEURL)apparel/shoes.html $(BASEURL)apparel/shoes.html?price=1%2C $(BASEURL)apparel/shoes.html?price=1%2C &shoe_type=52 $(BASEURL)kenneth-cole-new-york-men-s-con-verge-slip-on.html URL List of Cachable Pages Only for Testing with and SKUs $(BASEURL)
30 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 29 $(BASEURL)category-3.html $(BASEURL)category-3.html?cat=28 $(BASEURL)category-3.html?cat=28&price=2%2C1000 $(BASEURL)category-3/pr html $(BASEURL)category-273.html $(BASEURL)category-273/ b7h.html $(BASEURL)category-273.html?cat=427 $(BASEURL)category-273.html?cat=427&ab_host=303 $(BASEURL)category-273/r1256ap.html $(BASEURL)category-273/category-309.html $(BASEURL)category-924/category-925.html $(BASEURL)category-924/category-925.html?price=1%2C $(BASEURL)category-924/category-925.html?aahauptkategorie=513&price=1%2C $(BASEURL)category-924/category-925/cc html URL List for Testing the Flat Catalog Feature with Sample Data $(BASEURL)furniture/living-room.html?dir=desc&order=position $(BASEURL)furniture/living-room.html?dir=asc&order=position $(BASEURL)furniture/living-room.html?dir=asc&order=name $(BASEURL)furniture/living-room.html?dir=desc&order=name $(BASEURL)furniture/living-room.html?dir=asc&order=price $(BASEURL)furniture/living-room.html?dir=desc&order=price URL List for Testing the Flat Catalog Feature with and SKUs $(BASEURL)category-811.html?dir=desc&order=position $(BASEURL)category-811.html?dir=asc&order=position $(BASEURL)category-811.html?dir=asc&order=name $(BASEURL)category-811.html?dir=desc&order=name $(BASEURL)category-811.html?dir=asc&order=price $(BASEURL)category-811.html?dir=desc&order=price URL List for Testing Solr Integration for Search Automatically generated URL lists for testing Solr vs. MySQL search are available as a separate file and can be sent by request. Please contact [email protected] for URL lists for: for search with Sample Data for search with and SKUs Please note, that the Solr vs. MySQL search performance was tested using slightly different technique, every URL from the list was taken randomly to prevent every concurrent connection to perform the same search request. URL List Used for Testing Solr Integration for catalog filtering with Sample Data $(BASEURL)apparel/shirts.html $(BASEURL)apparel/shirts.html?price=1%2C100 $(BASEURL)apparel/shirts.html?price=2%2C100 $(BASEURL)apparel/shirts.html?color=White $(BASEURL)apparel/shoes/mens.html $(BASEURL)apparel/shoes/mens.html?price=2%2C100 $(BASEURL)apparel/shoes/mens.html?color=Gray $(BASEURL)apparel/shoes/mens.html?shoe_type=Running $(BASEURL)apparel/shoes/womens.html $(BASEURL)apparel/shoes/womens.html?price=1%2C100 $(BASEURL)apparel/shoes/womens.html?manufacturer=CN+CLogs $(BASEURL)apparel/shoes/womens.html?color=Brown URL List for Testing Solr Integration for catalog filtering with and SKUs $(BASEURL)category-736.html $(BASEURL)category-736.html?aahauptkategorie=515 $(BASEURL)category-736.html?aahauptkategorie=514 $(BASEURL)category-736.html?aahauptkategorie=513 $(BASEURL)category-924.html $(BASEURL)category-924.html?aahauptkategorie=515 $(BASEURL)category-924.html?aahauptkategorie=514 $(BASEURL)category-924.html?aahauptkategorie=513 $(BASEURL)category-811.html $(BASEURL)category-811.html?aahauptkategorie=515 $(BASEURL)category-811.html?aahauptkategorie=514 $(BASEURL)category-811.html?aahauptkategorie=513
31 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 30 $(BASEURL) = Appendix E Sample Databases Please contact [email protected] for sample data and databases. Appendix F Magento Enterprise Edition Sample Configurations Configuration for Two Level Cache <config> <global> <cache> <!-- Can also be either apc, memcached, or file. If empty, file is assumed --> <backend>memcached</backend> <!-- Used for only memory based storages, can be either database or file. If empty, file is assumed --> <slow_backend></slow_backend> <!-- memcached cache backend related config --> <memcached> <servers><!-- any number of server nodes can be included --> <server1> <host><![cdata[localhost]]></host> <port><![cdata[11211]]></port> <persistent><![cdata[1]]></persistent> <weight><![cdata[2]]></weight> <timeout><![cdata[10]]></timeout> <retry_interval><![cdata[10]]></retry_interval> <status><![cdata[]]></status> </server1> <!-- <server2>... </server2> --> </servers> <compression><![cdata[0]]></compression> <cache_dir><![cdata[]]></cache_dir> <hashed_directory_level><![cdata[]]></hashed_directory_level> <hashed_directory_umask><![cdata[]]></hashed_directory_umask> <file_name_prefix><![cdata[]]></file_name_prefix> </memcached> </cache> </global> </config>
32 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 31 Configuration for Two Database Nodes The following configuration code sample shows how to set up two separate connections for the master and slave database servers: <config> <global> <resources> <default_setup> <connection> <host><![cdata[master]]></host> <username><![cdata[writeuser]]></username> <password><![cdata[writeuserpwd]]></password> <dbname><![cdata[magento]]></dbname> <active>1</active> </connection> </default_setup> <default_read> <connection> <use></use> <host><![cdata[slave]]></host> <username><![cdata[readuser]]></username> <password><![cdata[readuserpwd]]></password> <dbname><![cdata[magento]]></dbname> <model>mysql4</model> <initstatements>set NAMES utf8</initstatements> <type>pdo_mysql</type> <active>1</active> </connection> </default_read> </resources> </global> <config>
33 MAXIMIZING PERFORMANCE AND SCALABILITY WITH MAGENTO ENTERPRISE EDITION 32 Magento, Inc. is an experienced player in the ecommerce industry. Since 2001, we have been leveraging the power of Open Source technology to help online merchants fulfill their business goals at a fraction of the cost and time of proprietary ecommerce solutions. Our clients are a new generation of merchants eager to realize their creative ideas and gain an edge in their industry, without technology getting in the way. Magento is a feature-rich, professional open-source ecommerce solution that offers merchants complete flexibility and control over the look, content, and functionality of their online store. Magento s intuitive administration interface contains powerful marketing, merchandising and content management tools to give merchants the power to create sites that are tailored to their unique business needs. Completely scalable and backed by an extensive support network, Magento offers companies the ultimate ecommerce solution. For more information, visit us at Headquarters Magento, Inc Jefferson Blvd. Suite 200 Culver City, CA USA Sales Information and Inquiries Magento has offices and solution partners worldwide. Contact us for more information about Magneto Enterprise Edition at [email protected].
Maximizing Performance and Scalability with Magento Enterprise Edition
Enterprise Edition 1.11 Maximizing Performance and Scalability with Magento Enterprise Edition Magento White Paper Series In this Performance White Paper, we provide an overview of architecture and design
Magento Enterprise Edition White Paper!!"#$%&'()*&(+"'#(,-).#/."'(0%-(1/2$(,"-0%-3)*."("4%33"-."!
Magento Enterprise Edition White Paper!!!"#$%&'()*&(+"'#(,-).#/."'(0%-(1/2$(,"-0%-3)*."("4%33"-."! "! Introduced in 2009, the Magento Enterprise Edition subscription is the leading enterprise-grade, feature-rich
C:\www\apache2214\conf\httpd.conf Freitag, 16. Dezember 2011 08:50
This is the main Apache HTTP server configuration file. It contains the configuration directives that give the server its instructions. See for detailed information.
MAGENTO HOSTING Progressive Server Performance Improvements
MAGENTO HOSTING Progressive Server Performance Improvements Simple Helix, LLC 4092 Memorial Parkway Ste 202 Huntsville, AL 35802 [email protected] 1.866.963.0424 www.simplehelix.com 2 Table of Contents
Eth0 IP Address with Default Gateway Settings:
Linux Apache Web Server Web Server NIC Settings Eth0, Eth1 and Loopback: Eth0 IP Address with Default Gateway Settings: Eth1 IP Address with Default Gateway Settings: NIC Hardware Settings: DNS and Hostname
9 Tried and Tested Tips to Increase the Power of your Magento Store
9 Tried and Tested Tips to Increase the Power of your Magento Store Table of Contents 01 Introduction...03 02 Enable Caching...04 03 Use PHP Accelerators like APC...05 04 05 06 07 09 Use Magento Full Page
Created by : Ashish Shah, J.M. PATEL COLLEGE UNIT-5 CHAP-1 CONFIGURING WEB SERVER
UNIT-5 CHAP-1 CONFIGURING WEB SERVER 1 APACHE SERVER The Apache Web server is the most popular Web server on the planet. Individuals and organizations use Linux primarily to create an inexpensive and stable
Web Server: Principles and Configuration Web Programming 8) Web Server
Web Server: Principles and Configuration Web Programming 8) Web Server Emmanuel Benoist Fall Term 2013-14 Introduction Presentation of Apache Principles of a Web Server Apache Installation Apache Configuration
High Availability Configuration of ActiveVOS Central with Apache Load Balancer
High Availability Configuration of ActiveVOS Central with Apache Load Balancer Technical Note Version 1.1 10 December 2011 2011 Active Endpoints Inc. ActiveVOS is a trademark of Active Endpoints, Inc.
Installing Apache Software
Web Server Web Server Is a software application that uses the HyperText Transfer Protocol. Running on computer connected to Internet. Many Web Server software applications: Public domain software from
Anexo II Ejemplos de ficheros de configuración de Apache Web Server
Anexo II Ejemplos de ficheros de configuración de Apache Web Server hhtpd.conf Based upon the NCSA server configuration files originally by Rob McCool. This is the main Apache server configuration file.
Serving 4 million page requests an hour with Magento Enterprise
1 Serving 4 million page requests an hour with Magento Enterprise Introduction In order to better understand Magento Enterprise s capacity to serve the needs of some of our larger clients, Session Digital
TODAY web servers become more and more
WEB SERVER PERFORMANCE ANALYSIS, LIA PROJECT, 2ND APRIL 2010 1 Web server performance analysis Sebastian Dabkiewicz [email protected] Abstract Web servers become more and more important for company
Enterprise Edition Scalability. ecommerce Framework Built to Scale Reading Time: 10 minutes
Enterprise Edition Scalability ecommerce Framework Built to Scale Reading Time: 10 minutes Broadleaf Commerce Scalability About the Broadleaf Commerce Framework Test Methodology Test Results Test 1: High
Apache 2.2 on Windows: A Primer
Apache 2.2 on Windows: A Primer Published by the Open Source Software Lab at Microsoft. February 2008. Special thanks to Chris Travers, Contributing Author to the Open Source Software Lab. Most current
Wednesday, October 10, 12. Running a High Performance LAMP stack on a $20 Virtual Server
Running a High Performance LAMP stack on a $20 Virtual Server Simplified Uptime Started a side-business selling customized hosting to small e-commerce and other web sites Spent a lot of time optimizing
Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs)
Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs) 1. Foreword Magento is a PHP/Zend application which intensively uses the CPU. Since version 1.1.6, each new version includes some
Internet Appliance INTERNETpro Enterprise Stack : Performance & failover testing
May 21 11 Aviation Parkway, Suite 4 Morrisville, NC 2756 919-38-28 Fax 919-38-2899 32 B Lakeside Drive Foster City, CA 9444 65-513-8 Fax 65-513-899 www.etestinglabs.com [email protected]
E-commerce is also about
Magento server & environment optimization Get very fast page rendering, even under heavy load! E-commerce is also about NBS System 2011, all right reserved Managed Hosting & Security www.nbs-system.com
making drupal run fast
making drupal run fast 2 Objectives Improve drupal performance Provide Simple tips on Increasing Drupal performance We have some data from load testing a site in these different configs: ++ plain drupal
Table of Contents. Overview... 1 Introduction... 2 Common Architectures... 3. Technical Challenges with Magento... 6. ChinaNetCloud's Experience...
Table of Contents Overview... 1 Introduction... 2 Common Architectures... 3 Simple System... 3 Highly Available System... 4 Large Scale High-Performance System... 5 Technical Challenges with Magento...
Drupal Performance Tuning
Drupal Performance Tuning By Jeremy Zerr Website: http://www.jeremyzerr.com @jrzerr http://www.linkedin.com/in/jrzerr Overview Basics of Web App Systems Architecture General Web
How To Configure Apa Web Server For High Performance
DEPLOYMENT GUIDE Version 1.0 Deploying F5 with Apache Web Servers Table of Contents Table of Contents Deploying the BIG-IP LTM with the Apache web server Prerequisites and configuration notes... 1 Product
Managing your Red Hat Enterprise Linux guests with RHN Satellite
Managing your Red Hat Enterprise Linux guests with RHN Satellite Matthew Davis, Level 1 Production Support Manager, Red Hat Brad Hinson, Sr. Support Engineer Lead System z, Red Hat Mark Spencer, Sr. Solutions
Magento Optimised Template CentOS 6 with cpanel/whm V1.0
Magento Optimised Template CentOS 6 with cpanel/whm V1.0 Magento Optimised Template CentOS 6 with cpanel/whm Crucial Cloud Hosting 1 Contents Introduction... 2 Objectives... 3 Web Server Optimisation...
OVERVIEW... 2. Methodology... 2. Objectives... 2. Terminology... 2. Recommended Test Protocol... 3 CLOUD SERVICES VS. DEDICATED HOSTING...
TABLE OF CONTENTS OVERVIEW... 2 Methodology... 2 Objectives... 2 Terminology... 2 Recommended Test Protocol... 3 CLOUD SERVICES VS. DEDICATED HOSTING... 4 SYSTEM RESOURCE MONITORING... 4 MAGENTO CONFIGURATION
How to setup HTTP & HTTPS Load balancer for Mediator
How to setup HTTP & HTTPS Load balancer for Mediator Setting up the Apache HTTP Load Balancer for Mediator This guide would help you to setup mediator product to run via the Apache Load Balancer in HTTP
Using Redis as a Cache Backend in Magento
Using Redis as a Cache Backend in Magento Written by: Alexey Samorukov Aleksandr Lozhechnik Kirill Morozov Table of Contents PROBLEMS WITH THE TWOLEVELS CACHE BACKEND CONFIRMING THE ISSUE SOLVING THE ISSUE
Shop by Manufacturer Custom Module for Magento
Shop by Manufacturer Custom Module for Magento TABLE OF CONTENTS Table of Contents Table Of Contents... 2 1. INTRODUCTION... 3 2. Overview...3 3. Requirements... 3 4. Features... 4 4.1 Features accessible
Basic Apache Web Services
Basic Apache Web Services Getting Apache Before you can do anything else, you need to install Apache You can download the rpms from some of your regular sites, or from http://downloadfedoraredhatcom/pub/
Lesson 7 - Website Administration
Lesson 7 - Website Administration If you are hired as a web designer, your client will most likely expect you do more than just create their website. They will expect you to also know how to get their
Cloud Based Application Architectures using Smart Computing
Cloud Based Application Architectures using Smart Computing How to Use this Guide Joyent Smart Technology represents a sophisticated evolution in cloud computing infrastructure. Most cloud computing products
Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION
Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION AGENDA 1. Overview of Magento 2.0 2. Features and benefits of Magento 2.0 over Magento 1.x 3. Why should we upgrade to Magento 2.0
Bricks Cluster Technical Whitepaper
1 20steps Version: December 2014 (Draft) Bricks Cluster Technical Whitepaper by Helmut Hoffer von Ankershoffen (Owner & CTO) Bastian Brodbeck (Lead Frontend Development) Zimmerstraße 26 Aufgang B 8th Floor
Parallels Plesk Automation
Parallels Plesk Automation Contents Get Started 3 Infrastructure Configuration... 4 Network Configuration... 6 Installing Parallels Plesk Automation 7 Deploying Infrastructure 9 Installing License Keys
Accelerating Wordpress for Pagerank and Profit
Slide No. 1 Accelerating Wordpress for Pagerank and Profit Practical tips and tricks to increase the speed of your site, improve conversions and climb the search rankings By: Allan Jude November 2011 Vice
Cloud Storage. Parallels. Performance Benchmark Results. White Paper. www.parallels.com
Parallels Cloud Storage White Paper Performance Benchmark Results www.parallels.com Table of Contents Executive Summary... 3 Architecture Overview... 3 Key Features... 4 No Special Hardware Requirements...
Wikimedia architecture. Mark Bergsma <[email protected]> Wikimedia Foundation Inc.
Mark Bergsma Wikimedia Foundation Inc. Overview Intro Global architecture Content Delivery Network (CDN) Application servers Persistent storage Focus on architecture, not so much on
Apache (2) als Reverse Proxy für Outlook Web Access
Installations HOWTO Apache (2) als Reverse Proxy für Outlook Web Access Vorraussetzungen: Ein laufender Microsoft Exchange Server mit Web Access mögl. über SSL Verschlüsselung. Ein I386 Linux Basis System,
NetIQ Access Manager 4.1
White Paper NetIQ Access Manager 4.1 Performance and Sizing Guidelines Performance, Reliability, and Scalability Testing Revisions This table outlines all the changes that have been made to this document
How To Use Ngnix (Php) With A Php-Fpm (Php-Fmm) On A Web Server (Php5) On Your Web Browser) On An Ubuntu Web Server On A Raspberry Web 2.5 (Net
Powering Magento with Ngnix and PHP-FPM Written by: Yuri Golovko Alexey Samorukov Table of Contents INTRODUCTION WHY YOU SHOULD CONSIDER NGNIX NGNIX AND STATIC CONTENT HOW TO USE NGNIX NGNIX SYSTEM REQUIREMENTS
Case Study. SaaS Based Multi-Store Market Place. www.brainvire.com 2013 Brainvire Infotech Pvt. Ltd Page 1 of 5
Case Study SaaS Based Multi-Store Market Place Page 1 of 5 Client Requirement Magento Multi-Store Ecommerce Management is a web based virtual mall. It s an e- commerce virtual mall cum SaaS based model
Cache All The Things
Cache All The Things About Me Mike Bell Drupal Developer @mikebell_ http://drupal.org/user/189605 Exactly what things? erm... everything! No really... Frontend: - HTML - CSS - Images - Javascript Backend:
PARALLELS CLOUD STORAGE
PARALLELS CLOUD STORAGE Performance Benchmark Results 1 Table of Contents Executive Summary... Error! Bookmark not defined. Architecture Overview... 3 Key Features... 5 No Special Hardware Requirements...
DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION
DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION A DIABLO WHITE PAPER AUGUST 2014 Ricky Trigalo Director of Business Development Virtualization, Diablo Technologies
EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.
CONTENTS 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix EXECUTIVE SUMMARY Tenzing Managed IT services has recently partnered with Amazon Web Services
Optimizing Drupal Performance. Benchmark Results
Benchmark Results February 2010 Table of Contents Overview 3 Test Environment 3 Results Summary 4 Configurations and Test Details 8 Bytecode Caching 12 Improving Drupal Code with Partial Caching 13 Full
5 Mistakes to Avoid on Your Drupal Website
5 Mistakes to Avoid on Your Drupal Website Table of Contents Introduction.... 3 Architecture: Content.... 4 Architecture: Display... 5 Architecture: Site or Functionality.... 6 Security.... 8 Performance...
Tushar Joshi Turtle Networks Ltd
MySQL Database for High Availability Web Applications Tushar Joshi Turtle Networks Ltd www.turtle.net Overview What is High Availability? Web/Network Architecture Applications MySQL Replication MySQL Clustering
To increase scalability, the following features can be integrated:
Client Requirements Magento Multi Store Ecommerce Management system is an online virtual mall using is Saas based model based Ecommerce Platform where merchants and retailers can sign up and easily create
SiteCelerate white paper
SiteCelerate white paper Arahe Solutions SITECELERATE OVERVIEW As enterprises increases their investment in Web applications, Portal and websites and as usage of these applications increase, performance
Optimizing TYPO3 performance
Optimizing TYPO3 performance Dmitry Dulepov ([email protected]) Performance optimization areas: TYPO3 code TYPO3 installation Server hardware Server software Apache MySQL Optimizing TYPO3 code Hardly possible
PARALLELS CLOUD SERVER
PARALLELS CLOUD SERVER Performance and Scalability 1 Table of Contents Executive Summary... Error! Bookmark not defined. LAMP Stack Performance Evaluation... Error! Bookmark not defined. Background...
Designing, Scoping, and Configuring Scalable Drupal Infrastructure. Presented 2009-05-30 by David Strauss
Designing, Scoping, and Configuring Scalable Drupal Infrastructure Presented 2009-05-30 by David Strauss Understanding Load Distribution Predicting peak traffic Traffic over the day can be highly irregular.
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam [email protected]
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam [email protected] Agenda The rise of Big Data & Hadoop MySQL in the Big Data Lifecycle MySQL Solutions for Big Data Q&A
The importance of Drupal Cache. Luis F. Ribeiro Ci&T Inc. 2013
The importance of Drupal Cache Luis F. Ribeiro Ci&T Inc. 2013 Introduction Caio Ciao Luppi Software Architect at Ci&T Inc. More than 4 years of experience with Drupal Development Experience with Application
Web Performance. Sergey Chernyshev. March '09 New York Web Standards Meetup. New York, NY. March 19 th, 2009
Web Performance Sergey Chernyshev March '09 New York Web Standards Meetup New York, NY March 19 th, 2009 About presenter Doing web stuff since 1995 Director, Web Systems and Applications at trutv Personal
Are You Ready for the Holiday Rush?
Are You Ready for the Holiday Rush? Five Survival Tips Written by Joseph Palumbo, Cloud Usability Team Leader Are You Ready for the Holiday Rush? Five Survival Tips Cover Table of Contents 1. Vertical
ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy
ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy OVERVIEW The global communication and the continuous growth of services provided through the Internet or local infrastructure require to
4D WebSTAR 5.1: Performance Advantages
4D WebSTAR 5.1: Performance Advantages CJ Holmes, Director of Engineering, 4D WebSTAR OVERVIEW This white paper will discuss a variety of performance benefits of 4D WebSTAR 5.1 when compared to other Web
IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including:
IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including: 1. IT Cost Containment 84 topics 2. Cloud Computing Readiness 225
Virtuoso and Database Scalability
Virtuoso and Database Scalability By Orri Erling Table of Contents Abstract Metrics Results Transaction Throughput Initializing 40 warehouses Serial Read Test Conditions Analysis Working Set Effect of
Brocade Virtual Traffic Manager and Magento Deployment Guide
September 2015 Brocade Virtual Traffic Manager and Magento Deployment Guide 2015 Brocade Communications Systems, Inc. All Rights Reserved. ADX, Brocade, Brocade Assurance, the B-wing symbol, DCX, Fabric
Sawmill Log Analyzer Best Practices!! Page 1 of 6. Sawmill Log Analyzer Best Practices
Sawmill Log Analyzer Best Practices!! Page 1 of 6 Sawmill Log Analyzer Best Practices! Sawmill Log Analyzer Best Practices!! Page 2 of 6 This document describes best practices for the Sawmill universal
Real Vision Software, Inc.
Real Vision Software, Inc. Configuring an IBM i host for SSL These steps take you through configuring an IBM i host to run Secure Sockets Layer (SSL) as a self-signed Certificate Authority (CA). The Digital
Optimizing your Magento store for heavy API access. 1.0 June 2013
Optimizing your Magento store for heavy API access 1.0 June 2013 About This Guide This guide is for anyone who is looking to optimise the API link speed between a Magento installation and Brightpearl.
Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.
Agenda Enterprise Performance Factors Overall Enterprise Performance Factors Best Practice for generic Enterprise Best Practice for 3-tiers Enterprise Hardware Load Balancer Basic Unix Tuning Performance
Introduction 1 Performance on Hosted Server 1. Benchmarks 2. System Requirements 7 Load Balancing 7
Introduction 1 Performance on Hosted Server 1 Figure 1: Real World Performance 1 Benchmarks 2 System configuration used for benchmarks 2 Figure 2a: New tickets per minute on E5440 processors 3 Figure 2b:
Rails Application Deployment. July 2007 @ Philly on Rails
Rails Application Deployment July 2007 @ Philly on Rails What Shall We Deploy Tonight? Blogging/publishing system Standard Rails application Ships with gems in vendor directory Easy rake task for database
DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server
DEPLOYMENT GUIDE Version 1.0 Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server Table of Contents Table of Contents Deploying the BIG-IP LTM with Tomcat application servers and Apache web
Official Amazon Checkout Extension for Magento Commerce. Documentation
Official Amazon Checkout Extension for Magento Commerce Documentation 1. Introduction This extension provides official integration of your Magento store with Inline Checkout by Amazon service. Checkout
An Esri White Paper January 2010 Performance and Throughput Tips for ArcGIS Server 9.3.1 Cached Map Services and the Apache HTTP Server
An Esri White Paper January 2010 Performance and Throughput Tips for ArcGIS Server 9.3.1 Cached Map Services Esri, 380 New York St., Redlands, CA 92373-8100 USA TEL 909-793-2853 FAX 909-793-5953 E-MAIL
For a full comparison of Magento Enterprise and Magento Community, visit http://www.magentocommerce.com/product/compare. Magento Feature List
Magento is a feature-rich, professional Open Source ecommerce platform solution that offers merchants complete flexibility and control over the user experience, content, and functionality of their online
PROXY SETUP WITH IIS USING URL REWRITE, APPLICATION REQUEST ROUTING AND WEB FARM FRAMEWORK OR APACHE HTTP SERVER FOR EMC DOCUMENTUM EROOM
White Paper PROXY SETUP WITH IIS USING URL REWRITE, APPLICATION REQUEST ROUTING AND WEB FARM FRAMEWORK OR APACHE HTTP SERVER FOR EMC DOCUMENTUM EROOM Abstract This white paper explains how to setup Proxy
MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?
MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM? Ashutosh Shinde Performance Architect [email protected] Validating if the workload generated by the load generating tools is applied
High Availability Solutions for the MariaDB and MySQL Database
High Availability Solutions for the MariaDB and MySQL Database 1 Introduction This paper introduces recommendations and some of the solutions used to create an availability or high availability environment
An Oracle White Paper July 2011. Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide
Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide An Oracle White Paper July 2011 1 Disclaimer The following is intended to outline our general product direction.
ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy
ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy OVERVIEW The global communication and the continuous growth of services provided through the Internet or local infrastructure require to
Bubble Code Review for Magento
User Guide Author: Version: Website: Support: Johann Reinke 1.1 https://www.bubbleshop.net [email protected] Table of Contents 1 Introducing Bubble Code Review... 3 1.1 Features... 3 1.2 Compatibility...
Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia
Simple Tips to Improve Drupal Performance: No Coding Required By Erik Webb, Senior Technical Consultant, Acquia Table of Contents Introduction................................................ 3 Types of
How To Scale Myroster With Flash Memory From Hgst On A Flash Flash Flash Memory On A Slave Server
White Paper October 2014 Scaling MySQL Deployments Using HGST FlashMAX PCIe SSDs An HGST and Percona Collaborative Whitepaper Table of Contents Introduction The Challenge Read Workload Scaling...1 Write
PHP web serving study Performance report
PHP web serving study Performance report by Stefan "SaltwaterC" Rusu Date: May - June 2010 Contact: http://saltwaterc.net/contact or admin [at] saltwaterc [dot] net Hardware Configurations Web Server:
Layers of Caching: Key to scaling your website. Lance Albertson -- [email protected] Narayan Newton [email protected]
Layers of Caching: Key to scaling your website Lance Albertson -- [email protected] Narayan Newton [email protected] Importance of Caching RAM is fast! Utilize resources more efficiently Improve
Performance White Paper
Sitecore Experience Platform 8.1 Performance White Paper Rev: March 11, 2016 Sitecore Experience Platform 8.1 Performance White Paper Sitecore Experience Platform 8.1 Table of contents Table of contents...
Tableau Server Scalability Explained
Tableau Server Scalability Explained Author: Neelesh Kamkolkar Tableau Software July 2013 p2 Executive Summary In March 2013, we ran scalability tests to understand the scalability of Tableau 8.0. We wanted
LYONSCG ECOMMERCE ACCELERATOR (LEA) FOR MAGENTO. Discussion of Features
LYONSCG ECOMMERCE ACCELERATOR (LEA) FOR MAGENTO Discussion of Features Eric Marsh July 2015 1 AN INNOVATIVE ecommerce SOLUTION The LYONSCG ecommerce Accelerator (LEA) for Magento was developed for small
Bubble Full Page Cache for Magento
User Guide Author: Version: Website: Support: Johann Reinke 2.0 http://www.bubbleshop.net [email protected] Table of Contents 1 Introducing Bubble Full Page Cache... 3 1.1 Features... 3 1.2 Compatibility...
Parallels Cloud Storage
Parallels Cloud Storage White Paper Best Practices for Configuring a Parallels Cloud Storage Cluster www.parallels.com Table of Contents Introduction... 3 How Parallels Cloud Storage Works... 3 Deploying
Bubble Full Page Cache for Magento
User Guide Author: Version: Website: Support: Johann Reinke 2.2 https://www.bubbleshop.net [email protected] Table of Contents 1 Introducing Bubble Full Page Cache... 3 1.1 Features... 3 1.2 Compatibility...
For a full comparison of Magento Enterprise and Magento Community, visit http://www.magentocommerce.com/product/compare. Magento Feature List
Magento is a feature-rich, professional Open Source ecommerce platform solution that offers merchants complete flexibility and control over the user experience, content, and functionality of their online
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved 1 1. Update Before you start updating, please refer to 2. Important changes to check if there are any additional instructions
WordPress Optimization
WordPress Optimization markkelnar WP Engine @renderandserve [email protected] wpengine.com/optimizing-wordpress WordCamp Atlanta 2012 Who is this guy? Head of Technology, System Administration, database,
