Производительность сервера
Я очень мало знаю о настройке производительности серверов и т. Д., Поэтому я подумал, что изложу это здесь, когда начну некоторые исследования, просто чтобы получить какое-то направление.
Я нахожусь в процессе миграции со старого сервера на новый - оба являются 64-битными машинами. Одному из них несколько лет, другому совершенно новый (PowerEdge R410).
Старая спецификация сервера: 2 процессора, 3,4 ГГц Pentiums, 8 ГБ ОЗУ, Fedora 11 в настоящее время установлена
Новая спецификация сервера: 16 процессоров, 3,2 ГГц Xeon, 16 ГБ ОЗУ, установлен CentOS 6.2. Также RAID10 на новом сервере - нет RAID на старом.
Оба сервера в настоящее время имеют одинаковую базу данных (MySQL) с одинаковыми перенесенными данными.
Я написал Perl-скрипт, который просто просматривает каждую строку таблицы в базе данных (около 18000 строк) и обновляет значение в этой строке. Каждая строка в таблице обновляется.
Из любопытства я запустил этот Perl-скрипт на обеих машинах, просто чтобы посмотреть, как новый сервер будет работать по сравнению со старым, и он дал интересные результаты: старый сервер был в два раза быстрее нового.
Глядя на базу данных, оба настроены точно так же (новый является дампом старого...)...
Кто-нибудь есть идеи, почему это будет дан аппаратный разрыв между обоими?
Как я уже сказал, я собираюсь начать кое-что копать, но подумал, что поставлю это здесь, чтобы, возможно, получить какое-то хорошее направление...
Спасибо заранее..
Редактировать: 26/9 Спасибо за ответы. У кого-нибудь есть другие предложения? Странно, что только при запуске perl-скрипта, который, как я вижу, старый сервер превосходит новый - все остальные тесты показали, что новый сервер далеко впереди...
Редактировать: 27/9 Хорошо, я провел несколько тестов, используя тест Perls, и обнаружил, что новый сервер превосходит старый, когда я выполняю простые тесты хруста числа, но когда дело доходит до взаимодействия с базой данных, старый сервер работает намного лучше.
Старый сервер:
Тест Crunch с начальным номером: время 200000: 8 сек. ( 7,51 usr + 0,00 сис = 7,51 CPU) @ 26631,16/ с (n=200000) Тест Crunch с конечным номером:
Начать тест БД: время 20000: 163 сек. ( 9,72 долл. США + 2,78 сис = 12,50 ЦП) при 1600,00/ с (n=20000) Конец БД:
Новый сервер:
Тест Crunch с начальным номером: время 200000: 4 секундных таймера ( 4,53 usr + 0,00 сис = 4,53 CPU) при 44150,11/ с (n=200000) Тест Crunch с конечным номером.
Начать тест БД: время 20000: 380 сек. ( 0,86 долл. США + 0,31 сис = 1,17 ЦП) при 17094,02/ с (n=20000) Конец БД:
Вы можете ясно видеть, что новый сервер выполняет больше вычислений в секунду, чем старый, но все же занимает больше времени (много дольше), когда дело доходит до теста базы данных, который просто обновляет строки в таблице.
Так как mysqlslap показал, что новый сервер превосходит старый, я ошибаюсь, если скажу, что проблема заключается в взаимодействии Perls (с использованием DBI) с базой данных? Также, как указано выше, я провел тот же тест с использованием PHP, и новый сервер работал лучше, поэтому проблема, похоже, связана с Perl, особенно когда он взаимодействует с базой данных.
У кого-нибудь есть мысли?
ура
1 ответ
Операции с базами данных вообще многоядерны, у вас 16 ядер, но MySQL не использует их. Вы должны использовать несколько таблиц вместе, а не большие операции только с одной таблицей.
Какое оборудование используется для raid0? (контроллеры, диски)