Тестирование производительности операционных систем, используя MySQL

10.02.2005 08:32

В статье "Using MySQL to benchmark OS performance" рассматривается рациональность использования MySQL к качестве средства для измерения производительности (для тестирования выбраны утилиты SysBench и Super Smack). Приводятся рекомендации по сборке и оптимизации MySQL для разных операционных систем, определяется общая стратегия проведения эксперимента.

Во второй части статьи "Comparing MySQL performance" демонстрируются графики отражающих производительнось MySQL на платформах (с включенным SMP и без) FreeBSD 4.11, FreeBSD 5.3, NetBSD 2.0, Linux 2.6, Linux 2.4, Solaris 10 x86 (build 69), OpenBSD 3.6.

Кратко о результатах:

  • В конфигурации без SMP, в тесте select-key, победу одержала NetBSD (в других тестах она часто была на последних местах), затем Linux 2.6, Linux 2.4, OpenBSD и худшие результаты продемонстрировала FreeBSD.
  • Тот же select-key тест, но при сборке с поддержкой SMP поменял расстановку сил - Linux 2.6, Linux 2.4, FreeBSD 5.3 (KSE), NetBSD 2.0.
  • В тесте update-select результаты мало отличались от "select-key" за исключением того, что в SMP конфигурации FreeBSD 5.3 (KSE) оказался на предпоследнем месте.
  • Тест SysBench (1 миллион строк) без SMP: Linux 2.4, Linux 2.6, Solaris 10, FreeBSD 4.11 (LT), остальные заметно отстают (далее отстающих не упоминаю).
  • Тест SysBench (1 миллион строк) с SMP: Linux 2.6, Linux 2.4, Solaris 10, FreeBSD 4.11 (LT).
  • Тест SysBench (10 миллионов строк) без SMP: Linux 2.4, Linux 2.6, Solaris 10, далее вровень идут FreeBSD 4.11 (LT), FreeBSD 5.3 (KSE) и FreeBSD 5.3 (LT).
  • Тест SysBench (10 миллионов строк) с SMP - результаты почти совпадают с тестом без SMP.

    Итог: Приемлемую производительность показали платформы: Linux 2.6, Linux 2.4, Solaris 10, FreeBSD 4.11 (linuxthreads) и FreeBSD 5.3 (KSE).

    Заметки по настройке и конфигурации:

  • Настройки MySQL 4.0.22 (my.cnf):
    • innodb_buffer_pool_size=256M
    • innodb_log_file_size=128M
    • innodb_log_buffer_size=8M
    • innodb_flush_log_at_trx_commit=1
  • NetBSD и FreeBSD:
    • options MAXDSIZ="(896*1024*1024)"
    • options MAXSSIZ="(896*1024*1024)"
    • options DFLDSIZ="(896*1024*1024)"
  • Под FreeBSD 5.3 MySQL тестировался как с использованием KSE, так и linuxthreads.
  • Под FreeBSD 4.11 - ibc_r и linuxthreads.
  • MySQL под Linux тестировался с ядрами 2.4 и 2.6 (NPTL треды), в качестве файловой системы выбрана ReiserFS 3.