Ускоряем Magento: Часть 3 – Методика тестирования

Михаил Бессолов, 22.09.09

Третья статья из серии “Ускоряем Magento”, в которой мы опишем методику измерения производительности Magento, используемую в наших тестах.

Предыдущие статьи в серии “Ускоряем Magento”:

Целью этих тестов является показать преимущества той или иной конфигурации и настроек. Чтобы обеспечить возможность легко воспроизвести эти тесты или сравнить с другими конфигурациями позднее, мы решили провести тестирование в на виртуальных серверах в “облаке”. Следует заметить, что тесты на “реальном железе” дают намного лучшие результаты, что мы продемонстрируем в следующих статьях, сравнив несколько конфигураций физических серверов и виртуальную среду.

Тесты запускали на серверах в “облаке” Rackspace Cloud Servers – www.rackspacecloud.com. Запускаемые копии серверов использовали базовый образ операционной системы CentOS 5.3 x86_64, предоставляемый сервером (вы сможете выбрать любую другую из более чем 15 различных образов операционных систем). После запуска ОС производилась установка всех обновлений (yum update), устанавливались Apache, PHP и MySQL. Установочные пакеты PHP и MySQL для CentOS взяты из RPM-репозитория Remi – rpms.famillecollet.com. Все тесты проводились на Magento с тремя различными наборами данных – Magento Sample Data (~130 продуктов) и тестовые каталоги с 10 и 80 тысячами продуктов.

При тестировании измерялось количество запросов в секунду, которое может обработать система при запросах к стартовой странице и при запросах в течение “стандартной сессии посетителя”. Список страниц, которые входят в “стандартную сессию посетителя” приведён ниже на странице.

На всех графиках используются следующие обозначения для Magento с каталогами разного размера:

  • sd – Magento Sample Data
  • 10k – Magento с 10 тысячами продуктов
  • 80k – Magento с 80 тысячами продуктов

Каждый тест запускался с разным количеством параллельных потоков – 10, 20, 50 и 100 параллельных подключений.
Для тестирования использовалась утилита siege – www.joedog.org/index/siege-home и набор простых shell-скриптов для запуска тестов в разных конфигураций и обработки полученных результатов.

Список ссылок “стандартной тестовой сессии посетителя” для Magento Sample Data:

BASEURL=http://server.test/
$(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

Список ссылок тестовой сессии для Magento с 10 и 80 тысячами продуктов:

BASEURL=http://server.test/
$(BASEURL)
$(BASEURL)category-3.html
$(BASEURL)category-3.html?cat=28
$(BASEURL)category-3.html?cat=28&price=2%2C1000
$(BASEURL)category-3/pr15031-50.html
$(BASEURL)checkout/cart/add/product/2489/
$(BASEURL)category-273.html
$(BASEURL)category-273/100-190-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

Тестовые наборы данных:

Стандартный набор тестовых данных Magento Sample Data (~130 продуктов) доступен на странице загрузки по адресу www.magentocommerce.com/download

Тестовые базы данных с 10 тысячами и 80 тысячами продуктов можно скачать по следующим ссылкам:

Написать комментарий