Magento на сервере DigitalOcean

У меня проблема с магазином Magento, работающим на сервере Digital Ocean.

Это моя конфигурация капельки:

2GB Ram | 40GB SSD Disk | New York 2 | Ubuntu Ubuntu 12.04.3 x64

Когда я пользуюсь магазином Magento, он работает нормально, кроме случаев, когда я пытаюсь создать аккаунт или совершить покупку.

Затем на завершение покупки уходит 2 минуты.

Я скачал весь сайт локально (с помощью db), и заказ и создание аккаунта занимает всего несколько секунд.

Я пытался обновить дроплет до 4 ГБ оперативной памяти, но все так же.

Это моя конфигурация PHP:

max_execution_time  30
max_file_uploads    20  20
max_input_nesting_level 64
max_input_time  60
max_input_vars  1000
memory_limit    512M

Я не уверен, как продолжить отладку этого. Может кто-нибудь посоветовать?

Обновление № 2 (на основе UPD от MageWorx):
Основываясь на предложении MageWorx (обновлено), я запустил mysqltunner на сервере. Вот результаты:

[OK] Logged in using credentials from debian maintenance account.
[OK] Currently running supported MySQL version 5.5.38-0ubuntu0.12.04.1
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM
[--] Data in MyISAM tables: 25K (Tables: 28)
[--] Data in InnoDB tables: 36M (Tables: 1386)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[--] Data in MEMORY tables: 0B (Tables: 68)
[!!] Total fragmented tables: 1387

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 49s (338 q [6.898 qps], 71 conn, TX: 181K, RX: 51K)
[--] Reads / Writes: 92% / 8%
[--] Total buffers: 832.0M global + 2.7M per thread (100 max threads)
[OK] Maximum possible memory usage: 1.1G (54% of installed RAM)
[OK] Slow queries: 0% (0/338)
[OK] Highest usage of available connections: 2% (2/100)
[OK] Key buffer size / total MyISAM indexes: 32.0M/178.0K
[!!] Query cache efficiency: 12.9% (30 cached / 233 selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 12 sorts)
[OK] Temporary tables created on disk: 25% (57 on disk / 222 total)
[OK] Thread cache hit rate: 97% (2 created / 71 connections)
[OK] Table cache hit rate: 25% (1K open / 6K opened)
[OK] Open file limit used: 1% (104/8K)
[OK] Table locks acquired immediately: 100% (248 immediate / 248 locks)
[OK] InnoDB buffer pool / data size: 512.0M/36.8M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
Variables to adjust:
query_cache_limit (> 4M, or use smaller result sets)

Вот результаты от Apachebuddy:

Your server has 2002 MB of memory
The largest apache process is using 39.78 MB of memory
The smallest apache process is using 15.04 MB of memory
The average apache process is using 17.32 MB of memory
Going by the average Apache process, Apache can potentially use 433.00 MB RAM (21.63 % of available RAM)
Going by the largest Apache process, Apache can potentially use 994.50 MB RAM (49.68 % of available RAM)

Generating reports...
### GENERAL REPORT ###

Settings considered for this report:

Your server's physical RAM:     2002MB
Apache's MaxClients directive:      25
Apache MPM Model:           prefork
Largest Apache process (by memory): 39.78MB
[ OK ]  Your MaxClients setting is within an acceptable range.
Max potential memory usage:         994.5 MB

Percentage of RAM allocated to Apache   49.68 %

3

Решение

Смею предположить, что проблема вызвана отсутствием оптимизации настроек mysql. Дело в том, что без оптимизации mysql вы не сможете улучшить скорость работы сайта, поскольку mysql не будет использовать 100% ресурсов сервера.

Вот основные настройки для капли 2 Гб (/etc/mysql/my.cnf):

key_buffer=32M
query_cache_type=1
query_cache_limit=1M
query_cache_size=32M
table_cache=128
innodb_buffer_pool_size=256M

Так как это основные настройки, вы можете использовать приложение http://mysqltuner.com/ для дальнейшей оптимизации MySQL.

2

Другие решения

UPD:

Как видно из результатов, полученных с помощью mysqltuner, вам необходимо поэкспериментировать со следующими настройками:

skip-networking
query_cache_limit = 4M
query_cache_size = 256M

thread_concurrency = 4
table_open_cache = 4096
innodb_buffer_pool_size = 512M
join_buffer_size = 1M

Также обратите внимание, что после внесения изменений в файл my.cnf, не забудьте перезапустить mysql

sudo service mysql restart

После того, как настройки будут применены, протестируйте ваш веб-сайт в течение некоторого времени, а затем запустите mysqltuner, чтобы увидеть результаты.

2

Я использую эту точную конфигурацию Digital Ocean (с точки зрения ОЗУ и SSD — мои находятся на Centos и с конфигурацией PHP.ini по умолчанию) для различных сайтов разработки / размещения Magento, они работают нормально, поэтому я бы сказал, что ваша конфигурация сервера не вопрос. Это должен быть неэффективный код в шаблоне или модуле.

Я бы начал профилирование для этого;

https://www.nublue.co.uk/blog/using-magento-profiler-to-speed-up-magento-performance/

Я все еще использую модуль профилирования AOE, я думаю, это облегчает жизнь;

https://github.com/fbrnc/Aoe_Profiler

Я также запустил бы n98-magerun, чтобы увидеть, есть ли конфликты модулей;

https://github.com/netz98/n98-magerun

Затем, если вы все еще не можете найти его, переключитесь на тему по умолчанию и начните отключать модули, чтобы увидеть, какая это тема.

1
По вопросам рекламы [email protected]