Предистория:
есть клиентские 50$ максимум на хостинг в месяц и есть слабенький VPS сервер c одноядерным процом 2GHz и 2GB оперативы
На нем вертится единственный магазин на маженто с 1000 товарами и 600 категориями. Атрибутов не очень много.
Изначально все было очень медленно.
первая попытка
Я поставил ZendServer c включенным ZendCache и ZendOptimizer, установил APC.
Магазин работает часа 2 шустро, потом его шустрость падает. Судя по APC - показатель misses всегда 100%, как будто бы для APC не хватает памяти. top показывает что в оперативке стабильно 200-300 метров свободных.
На mysql в целом я отвел ~700Mb, на APC - 256Mb
Возможно, в настройках my.cnf я что-то не то делаю, но показатели вроде в пределах нормы:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
В общем пока так сайт и работает - с периодичностью в 4-5 часов я перезагружаю сервер, т.к. даже перезагрузка MySQL и ZS не помогает.
попытка вторая
Я решил попробовать скорость работы на сервере с тестовым периодом. 4x8000MHz + 8GB оперативы. Поставил mysql на нем и со старого сервера стал подключаться удаленно к базе mysql на новом. Даже с отключенным кешем стало очень оперативно работать.
Однако все равно равно бывают неприятные задержки.
вопрос
тут у меня возникло несколько вопросов:
1) реально ли все же оптимизировать работу на железе первого варианта (посещалка 1000 - 3000 в сутки)
2) если нереально первое, то как лучше разделить нагрузку - на слабый сервер повесить ZendServer, а на второй мощный повесить MySQL или наоборот? или же вообще параметров второго хватит вполне для работы на одном сервере? Мне хотелось бы понять что в маженто больше требует ресурсов - работа Apache+PHP с огромным количеством классов-) или же тяжелые запросы MySQL?
Mysql большую нагрузку на процессор не имеет, больше всего на I/O диска.
Про использование apache вообще забудьте. Больше всего ест cpu - php.
1)Да, реально, если использовать плагины кеширования + правильно настроить веб-сервер и php.
2)второго вполне хватит чтобы там летало всё.
Улучшить производительность Magento за счет сокращения количества операций чтения путем сокращения объема и очистки кэша.
Для этой цели послужит модуль, выполняющий операции очистки кэша по расписанию.
Модуль называется CacheSweep и доступен для бесплатного стачивания FREE через Magento Connect.
CacheSweep позволяет вам задать расписание для следующих 5 задач:
Sweep: это базовый метод, который удаляет все просроченные записи кэша. В идеале он должен запускаться раз в день.
SweepSystem: этот метод очищает весь кэш и эквивалентен запуску команды Flush Magento Cache из админ панели.
Он удаляет только записи кэша системы, игнорируя кэш изображений, css и javascript.
SweepAll:эквивалентен Flush Cacheб но удаляет кэш всех типов.
SweepStyle: очищает кэш только для css и javascript.
SweepMedia: очистка кэша изображений.
Каждый из этих методов может быть настроен в админ панели Magento как простое выражение для cron.
.
Архив рубрики “Повышение производительности Magento”
.
Ускорить ваш магазин может также модуль FREE Fooman Speedster,
Объединяя, сжатие и кэширование Javascript и CSS файлов.
Fooman Speedster
Улучшить производительность Magento за счет сокращения количества операций чтения путем сокращения объема и очистки кэша.
Для этой цели послужит модуль, выполняющий операции очистки кэша по расписанию.
Модуль называется CacheSweep и доступен для бесплатного стачивания FREE через Magento Connect.
CacheSweep позволяет вам задать расписание для следующих 5 задач:
Sweep: это базовый метод, который удаляет все просроченные записи кэша. В идеале он должен запускаться раз в день.
SweepSystem: этот метод очищает весь кэш и эквивалентен запуску команды Flush Magento Cache из админ панели.
Он удаляет только записи кэша системы, игнорируя кэш изображений, css и javascript.
SweepAll:эквивалентен Flush Cacheб но удаляет кэш всех типов.
SweepStyle: очищает кэш только для css и javascript.
SweepMedia: очистка кэша изображений.
Каждый из этих методов может быть настроен в админ панели Magento как простое выражение для cron.
.
Архив рубрики “Повышение производительности Magento”
.
Ускорить ваш магазин может также модуль FREE Fooman Speedster,
Объединяя, сжатие и кэширование Javascript и CSS файлов.
Fooman Speedster
Уже ставил fooman Speedster
Gtmetrix показал конечно некоторые улучшения, но не сказать что прмя даже в 2 раза.
Все равно страницы по 5-6 секунд, если сервер долго не перезагружался
Mysql большую нагрузку на процессор не имеет, больше всего на I/O диска.
Про использование apache вообще забудьте. Больше всего ест cpu - php.
1)Да, реально, если использовать плагины кеширования + правильно настроить веб-сервер и php.
2)второго вполне хватит чтобы там летало всё.
В чем правильность настройки может заключаться? Собственно это как раз и интересно-)
Это - опыт.
Нужно знать, какая часть демонов есть какие ресурсы, где их узкие места, какое ПО и из каких сборок использовать.
На плагинах кеширования не одну собаку сьели.
На нормальном хостинге узкое место одно - это процессор.
на одно ядро примерно 400-600 посетителей онлайн можно.
Вы можете воспользоваться Официальной литературой
Оптимизация Производительности, Сервера и Magento.
.
В этих двух книгах показано как максимально оптимизировать, работу Сервера и саму систему Magento
Пример описан для больших производств и многочисленных товаров.
То есть для системы Magento Enterprise Edition Для крупных Магазинов и корпораций.
.
Прочитав книги.
Вы можете применить эти настройки к Magento Community Edition
Скачать вы можете эти две книги по этой ссылке.
Предварительно за реставрироваться надо, или войти в свой Аккаунт
Книги доступны в, свободное скачивание FREE http://www.magentocommerce.com/whitepaper/
.
Вы также можете посмотреть эти две книги онлайн, и скачать их без регистрации.
Для прочтения Книг, вам потребуется установить Adobe Reader
.
1 OptimizingMagentoforPeakPerformance
2 Magento_PerformanceWhitepaper-EEv1-9.1
.
Удачи в познании Magento