@murmuringvoices
Звукорежиссер

От чего зависит производительность MYSQL?

Здравствуйте! Решил потестировать VPS сервера, которые у меня сейчас есть. То есть VPSie, Digital Ocean и микро на EC2. Поставил на них Sysbench, MariaDB 10.1, на всех стоит одинаковая ОС (Ubuntu 15.04), все параметры примерно одинаковые (1 ядро, 1гб RAM, SSD диск). Инфу не относящуюся к делу (вроде скорости скачивания с разных серверов) выкладывать не буду, напишу лишь часть.
sysbench --test=cpu --cpu-max-prime=20000 run
этот тест DO сделал за 38 секунд, VPSie за 27, а EC2 за 30.
Вот с такой командой
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm -f test
скорость у DO была 15.6 MB/s (очень странно), у VPSie - 504 MB/s, у ЕС2 - 64.3 MB/s.
Вроде, по всем этим показателям можно предположить, что VPSie самая быстрая, а DO самая слабая.

Но вот когда я начал тем же Sysbench делать бенчмарк базы даных следующими командами
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=1234 prepare

sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=1234 --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

sysbench --test=oltp --mysql-db=test --mysql-user=root --mysql-password=1234 cleanup

я получил следующие результаты:

VPSie:
OLTP test statistics:
    queries performed:
        read:                            310884
        write:                           0
        other:                           44412
        total:                           355296
    transactions:                        22206  (370.04 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 310884 (5180.56 per sec.)
    other operations:                    44412  (740.08 per sec.)

Test execution summary:
    total time:                          60.0098s
    total number of events:              22206
    total time taken by event execution: 479.9248
    per-request statistics:
         min:                                  4.85ms
         avg:                                 21.61ms
         max:                                106.37ms
         approx.  95 percentile:              33.49ms

Threads fairness:
    events (avg/stddev):           2775.7500/12.39
    execution time (avg/stddev):   59.9906/0.00


DO:
OLTP test statistics:
    queries performed:
        read:                            349062
        write:                           0
        other:                           49866
        total:                           398928
    transactions:                        24933  (415.49 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 349062 (5816.85 per sec.)
    other operations:                    49866  (830.98 per sec.)

Test execution summary:
    total time:                          60.0088s
    total number of events:              24933
    total time taken by event execution: 479.8953
    per-request statistics:
         min:                                  5.33ms
         avg:                                 19.25ms
         max:                                114.93ms
         approx.  95 percentile:              32.82ms

Threads fairness:
    events (avg/stddev):           3116.6250/8.69
    execution time (avg/stddev):   59.9869/0.00


EC2:
OLTP test statistics:
    queries performed:
        read:                            682780
        write:                           0
        other:                           97540
        total:                           780320
    transactions:                        48770  (812.76 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 682780 (11378.62 per sec.)
    other operations:                    97540  (1625.52 per sec.)

Test execution summary:
    total time:                          60.0055s
    total number of events:              48770
    total time taken by event execution: 479.8626
    per-request statistics:
         min:                                  2.41ms
         avg:                                  9.84ms
         max:                                 77.80ms
         approx.  95 percentile:              12.70ms

Threads fairness:
    events (avg/stddev):           6096.2500/13.25
    execution time (avg/stddev):   59.9828/0.00


Получается, EC2 оказалась в два раза примерно быстрее DO, а, казалось бы, самая мощная VPSie стала самой медленной.

Подскажите, я как-то не так расшифровываю результаты этих бенчмарков, или производительность баз данных очень сильно зависит от чего-то, что я упустил? Или как вообще такое могло получиться?

UPD: Настройки MariaDB не отличались. Единственное, что было сделано между установкой и тестом - mysql_secure_installation
  • Вопрос задан
  • 990 просмотров
Пригласить эксперта
Ответы на вопрос 2
risik
@risik
Программист
Не знаю как там у DO и VPSie, но могу сказать за EC2. Микроинстанс это инстанс без гарантированной производительности. Он может вам дать высокую производительность в течение короткого времени, а потом отобрать у вас процессорное время. Так ведет себя вся серия инстансов t2:
> T2 instances are Burstable Performance Instances ...
https://aws.amazon.com/ec2/instance-types/

Посмотрите на параметр "CPU Credits / hour"
у микроинстанса значение 6. Проведите больше тестов в течение часа сразу после старта инстанса - должны увидеть просадку производительности. кредиты накапливаются до конца суток.

Или проводите тест более одной минуты, так как продолжительность одного кредита, как раз 1 минута:
> A CPU Credit provides the performance of a full CPU core for one minute.
по той же ссылке.
Ответ написан
@maxtm
Make money, not job
Оффтоп: всегда считал DO самой шустрой cloud-платформой... ваши тесты несколько меня обескуражили. Вероятно, время проверить самостоятельно.

По самой бд - скорость очень сильно может зависит от настроек, вплоть до 1000% производительности.
При условии, что эти самые настройки различаются - вопрос к Вам - а они различались на ваших инстансах?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы