Following are some important configurations that will speed up the Magento site. This tutorial is mainly focusing on my.cnf, php.ini and apache configuration files.
1. MySQL Configuration
Proper MySQL configuration will speed up the performance of the system. Below are the necessary configurations for MySQL.
innodb_thread_concurrency = 2 * [numberofCPUs] + 2 innodb_flush_log_at_trx_commit = 2 thread_concurrency = [number of CPUs] * 3 thread_cache_size = 32 table_cache = 1024 query_cache_size = 64M query_cache_limit = 2M join_buffer_size = 8M tmp_table_size = 256M key_buffer = 32M innodb_autoextend_increment=512 max_allowed_packet = 16M max_heap_table_size = 256M 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
In addition to these configurations, we need some more configurations in the innodb. They are:
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
2 * [numberofCPUs] + 2
3. table_cache is the number of tables that can be simultaneously opened by MySQL
4. query_cache_size (64 Mb )
5. query_cache_limit (2 Mb)
2. PHP Configuration
The main configuration for php.ini file are the following
realpath_cache_size = 32k realpath_cache_ttl = 7200 max_execution_time = 90 max_input_time = 90 memory_limit = 256M default_socket_timeout = 90 pdo_mysql.cache_size = 2000 output_buffering = 4096
3. Apache Configurations
Main apache configurations include:
1. Enable 'Keep Alive'
KeepAlive provides long-lived HTTP sessions which allow multiple requests to be sent over the same TCP connection. In some cases this has been shown to result in an almost 50% speedup in latency times for HTML documents with many images.