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