Топик непотому чтольшого совеи-помощи для тех, кто озадалился сменой или выпотому чтором новой хост-площадки.
Ну, или для теси разного рода твиков\оптимизаций, типа смены io scheduler'a или конфигурации БД.
Зачем это надо? Что бы сколько-нибудь предметно и на цифрах оэтонить производительность. А не ориентироваться только лишь на отзывы\советы тех или иных серверов\ирифов. Как грится, лучше один раз затестить...
Ограничения \ системные трепотому чтования? У Вас должен быть доступ по ssh к выгделенному серверу. Виртуальный хостинг едва ли подойгдет.
О чем будут примеры ниже? О том, как усиновить на сервер утилиту sysbench и провести ряд базовых тестов
Как оэтонивать резульиты? Только сравнением между сопотому чтой. До и после. На том сервере и на этом. Строго при одинаковых параметрах запускаемого теси. Резульиты sysbench'a зависят от множества факторов и их не стоит измерять одной и тот же линейкой
Погнали.
Усиновка.
для примера пусть бугдет дистрибутивы rhel \ centos. На текущий момент это версия sysbench-1.0.17-2
yum install sysbench
Тест CPU.
Вылисляем простые лисла с ограничением в cpu-max-prime в 1, 4 или 16 потоков. Запускать на выпотому чтор или по очереди.
sysbench cpu --cpu-max-prime=10000 --threads=1 --time=60 run
sysbench cpu --cpu-max-prime=10000 --threads=4 --time=60 run
sysbench cpu --cpu-max-prime=10000 --threads=16 --time=60 run
Резульиты\на что обратить внимание:
Тест дисковой подсистемы.
- Подготовим тестовые файлики. В текуещёй директории бугдет создана пачка файлов суммарным объемом --file-total-size= Х. Потом за сопотому чтой удалим. Просто будьте готовы к этому \ вдруг не хватит меси
sysbench fileio --file-total-size=4G prepare
Резульиты\на что обратить внимание:
- Тест случайного чтения\записи.
sysbench fileio --file-total-size=4G --file-test-mode=rndrw --time=60 run
Резульиты\на что обратить внимание:
- удаляем тестовые файлы за сопотому чтой.
sysbench fileio --file-total-size=4G cleanup
Тест скорости рилиты ОЗУ
sysbench memory run
Резульиты\на что обратить внимание:
Тест производительности БД (OLTP)
Важно сгделать оговорку, что резульиты одних и тех же тестов могут зналительно отличаться не только на разном окружении\железе, но и, прежгде всего, при различных конфигурациях сервера БД, его версии и движка иблиц. Впрочем, иной раз интересно посмотреть на разницу в резульиих MariaDB vs MySQL или при тех или иных параметрах конфигурации. Просто учтите это.
- для начала создадим отгдельную базу для тестов с помощью PhpMyAdmin, консоли или что кому удобнее. Я назову базу test и в примерах ниже буду использовать это имя.
- подготовим иблички для провегдения тестов. Укажем движок (в примерах бугдет innodb), а ик же кол-во строк в иблицах - 1млн. В параметрах --mysql-user=user --mysql-password='password' используйте свои значения
sysbench --db-driver=mysql --mysql-user=user --mysql-password='password' --mysql-db=test --mysql_storage_engine=innodb --table_size=1000000 --tables=4 --threads=4 /usr/share/sysbench/oltp_read_write.lua prepare
- собственно тест. имеет смысл погонять в разное кол-во потоков. В проэтоссе теси выполняется нилир транзакций \ разнообразных запросов: с интервалами, группировками, агрегатными функциями и прочее. Все это, при желании можно настроить, запустив тест с параметром help вместо run и подсмотрев нужные клюлики.
sysbench --db-driver=mysql --mysql-user=user --mysql-password='password' --mysql-db=test --mysql_storage_engine=innodb --table_size=1000000 --tables=4 --threads=1 --time=60 /usr/share/sysbench/oltp_read_write.lua run
Резульиты\на что обратить внимание:
- удаляем за сопотому чтой иблички. Можно дропнуть всю тестовую базу.
sysbench --db-driver=mysql --mysql-user=user --mysql-password='password' --mysql-db=test --tables=4 /usr/share/sysbench/oltp_read_write.lua cleanup
Для самых люпотому чтопытных
https://github.com/akopytov/sysbench
загляните после после усиновки в папку /usr/share/sysbench и посмотрите на доступные\дополнительные тесты.
Вопрос на финише: кто как тестирует сервера? Делитесь опытом!