Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X
X
X
X

Knowledge Base

Homepage Knowledge Base General High-Performance Server Configurati...

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR

High-Performance Server Configuration for Magento

High-Performance Server Configuration for Magento

While Magento is a powerful and flexible e-commerce platform, it can experience performance issues on a server that is not configured correctly. This article focuses on the ideal server configuration for your Magento-based store to perform at its best. Our goal is to help you achieve fast loading times, low server load, and high conversion rates.

1. Choosing the Right Server and Hardware Requirements

The choice of server for Magento depends on factors such as the size of your store, traffic volume, and the complexity of the product catalog. Shared hosting may be sufficient for small stores, while VPS (Virtual Private Server) or Dedicated Server are more suitable for medium and large-sized stores. Cloud-based solutions (AWS, Google Cloud, Azure) also offer advantages in terms of scalability and flexibility.

1.1. Basic Hardware Requirements

The recommended minimum hardware requirements for Magento 2 are:

  • Processor (CPU): At least a 2-core processor (Recommended: 4 or more cores)
  • Memory (RAM): At least 4 GB of RAM (Recommended: 8 GB or more, especially for large catalogs)
  • Storage (Disk): At least 10 GB SSD (Recommended: 50 GB or more, SSD improves performance)

These minimum requirements are a starting point for a small store. As your store grows and traffic increases, you may need to increase these requirements. Using SSD for disk space significantly increases file read and write speeds, positively impacting Magento performance.

1.2. Virtualization Technologies

If you are using a VPS or cloud server, the virtualization technology is also important. KVM (Kernel-based Virtual Machine) generally offers better performance than Xen. Container technologies like Docker can also be used to isolate and manage Magento applications.

2. Optimized PHP Configuration

PHP forms the foundation of Magento. The correct PHP configuration can significantly affect performance. It is important to optimize the following PHP settings:

2.1. PHP Version and Extensions

Magento 2 supports specific versions of PHP. Using the latest supported version is important for performance and security. Magento 2.4.x versions generally perform best with PHP 7.4 or PHP 8.1.

The required PHP extensions are:

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-spl
  • ext-xsl
  • ext-zip
  • ext-zlib
  • php-xdebug (For development environment)

2.2. PHP Opcode Caching (OPcache)

OPcache significantly improves performance by caching PHP code. OPcache needs to be enabled and configured in the php.ini file:

; OPcache settings
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 ; Must be 0 in production environment, 1 in development environment
opcache.revalidate_freq=60 ; In the development environment, how often to check the cache

The opcache.validate_timestamps setting should be set to 0 in the production environment. This prevents PHP files from being checked on every request and improves performance. In the development environment, setting it to 1 ensures that code changes are reflected immediately.

2.3. PHP Memory Limit (memory_limit)

Sufficient PHP memory must be allocated for Magento to run. The memory_limit setting is set in the php.ini file. Generally, 256M or 512M may be sufficient, but a higher value may be required for large catalogs or complex operations:

memory_limit=512M

3. Database Optimization (MySQL/MariaDB)

Magento uses a database to store and manage data. Correctly configuring databases such as MySQL or MariaDB significantly affects performance.

3.1. Database Server Settings

The my.cnf (or my.ini) file is the configuration file for the MySQL/MariaDB server. It is important to optimize the following settings in this file:

  • innodb_buffer_pool_size: The size of the InnoDB buffer pool. Can be set to 50-80% of the RAM on the server.
  • query_cache_type and query_cache_size: Removed in MySQL 8.0. If still used in MariaDB, it should be used carefully. It is generally better to disable it.
  • max_connections: The maximum number of connections that can connect to the server at the same time.
  • innodb_log_file_size and innodb_log_files_in_group: The size and number of InnoDB log files.

An example my.cnf configuration:

[mysqld]
innodb_buffer_pool_size = 6G
max_connections = 500
innodb_log_file_size = 256M
innodb_log_files_in_group = 2

3.2. Database Indexes

Correct indexes significantly increase the speed of database queries. Magento automatically creates some indexes, but additional indexes may need to be created for custom queries or reports. You can check the status of indexes and start the reindexing process from the "System -> Index Management" section of the Magento Admin Panel.

3.3. Database Caching

Caching database queries can improve performance. External caching systems such as Redis or Memcached can be used. Magento supports these systems and can be configured.

4. Caching Strategies

Magento has different types of caching. Correctly configuring them significantly affects performance.

4.1. Magento Internal Caching

Magento supports different types of caching, such as configuration, block outputs, collections, and full page cache. You can enable, disable, and clear cache types from the "System -> Cache Management" section of the Magento Admin Panel.

4.2. Full Page Cache (FPC)

Full Page Cache (FPC) significantly improves performance by caching entire pages. It is enabled by default in Magento, but it is important to configure it correctly. External caching systems such as Varnish or Redis can be used for FPC.

4.3. Varnish Cache

Varnish is an open-source caching system that works as an HTTP accelerator. It can be integrated with Magento and used for FPC. Varnish reduces server load and shortens page loading times by caching static and dynamic content.

Varnish configuration (default.vcl):

vcl 4.0;

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

4.4. Redis Caching

Redis is an open-source caching system that works as an in-memory data structure store. It can be used to store sessions, cache, and queues for Magento. Redis improves performance thanks to its fast read and write speeds.

To configure Redis in Magento, edit the env.php file:

'cache' => [
    'frontend' => [
        'default' => [
            'backend' => 'Cm_Cache_Backend_Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'port' => '6379',
                'database' => '0',
                'password' => '',
                'compress_data' => '1',
                'compression_lib' => 'gzip'
            ]
        ],
        'page_cache' => [
            'backend' => 'Cm_Cache_Backend_Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'port' => '6379',
                'database' => '1',
                'password' => '',
                'compress_data' => '0'
            ]
        ]
    ]
],
'session' => [
    'save' => 'redis',
    'redis' => [
        'host' => '127.0.0.1',
        'port' => '6379',
        'password' => '',
        'database' => '2',
        'compression_algorithm' => 'gzip',
        'compression_level' => '6',
        'max_concurrency' => '6',
        'break_after_frontend' => '5',
        'break_after_adminhtml' => '30',
        'first_lifetime' => '600',
        'lifetime' => '600'
    ]
]

5. Other Optimization Tips

  • Image Optimization: Optimizing images significantly reduces page loading times. Use the WebP format and compress images.
  • CDN (Content Delivery Network): Using a CDN to distribute static content (images, CSS, JavaScript) from different servers improves performance.
  • Minification and Merging: Minifying and merging CSS and JavaScript files reduces the number of HTTP requests.
  • HTTP/2: Enabling the HTTP/2 protocol improves performance.
  • Keeping Up-to-Date: Regularly updating Magento and your extensions is important for performance and security.
  • Performance Monitoring: It is important to monitor performance and identify problems using tools such as New Relic or Blackfire.io.

Conclusion and Summary

A high-performance server configuration for Magento requires careful planning and continuous optimization. Choosing the right hardware, optimized PHP and database settings, effective caching strategies, and other optimization tips ensure that your Magento store performs at its best. By applying the information presented in this article, you can achieve fast loading times, low server load, and high conversion rates. Remember that performance optimization is a continuous process and regular monitoring and improvement are required. 

Can't find the information you are looking for?

Create a Support Ticket
Did you find it useful?
(45807 times viewed / 21018 people found it helpful)

Call now to get more detailed information about our products and services.

Top