Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
В обслуживание достался офисный ПК:
- процессор AMD Athlon II X4 640 (4 ядра по 3 ГГц),
- оперативная память 4 ГБ PC3-10600 DDR-3,
- видео встроенное,
- жесткий диск Seagate ST500DM002 500 ГБ 7200rpm,
- операционка XP SP3 32-bit
- СУБД MySQL 4.1 и БД размером 3,6 ГБ.
К базе данных в час пик поступает порядка 70 запросов на запись в минуту, но не более 5000 запросов на запись в сутки. Количество запросов на чтение мне неизвестно.
Софт, работающий с БД, подтормаживает. Удаление старых записей и дефрагментация БД (dbForge Studio for MySQL) временно улучшают ситуацию, но тормоза всё равно остаются. Связь с разработчиками софта отсутствует. Единственное, что могу сказать: по-видимому, при запуске софт считывает всю БД, поскольку загружается весьма долго.
Компьютер работает круглосуточно, не перезагружается. Никаких оптимизаторов и очистителей оперативной памяти не используется.
ВОПРОС: Какие общие рекомендации по настройке операционной системы и СУБД Вы можете дать, чтобы подоживить систему?
С уважением, Сергей.
Неактивен
70 запросов на запись в минуту - это вообще не нагрузка. Общие рекомендации см. в Ботаническом определителе: http://sqlinfo.ru/a/i/rubtsov_mysqlbot.ppt
Если кратко, то скорее всего есть какая-то одна доминирующая причина торможения, ее можно найти.
Неактивен
Чтобы найти тот запрос, что считывает всю бд, включите лог медленных запросов и посмотрите что туда упадет после, допустим, суток.
Неактивен
Несколько пояснений. У меня нет особенного опыта администрирования СУБД. У Вас я хотел бы уточнить:
1. Имеет ли смысл переходить на старшую версию MySQL с точки зрения прироста производительности?
2. Требуется ли регулярная перезагрузка Windows XP для стабильной работы MySQL?
3. Могут ли быть полезны дефрагментаторы оперативной памяти?
4. И наконец, можно ли что-нибудь поделать, учитывая отсутствие доступа к коду софта и связи с девелоперами?
Неактивен
1. нет
2. для MySQL нет, если в самой системе Windows нет сторонних проблем, требующих перезагрузку
3. вряд ли помогут для MySQL
4. маловероятно
Неактивен
1. 4.1 - конечно устарело, но понять некоторые причины провисания можно и без обновления.
2. скорее нет, чем да
3. Во всяком случае рекомендовал бы сделать analyze и optimize всех табличек в базе (только отключите перед тем само приложение, работающее с базой).
4. Да, можно поанализировать логи медленных запросов (после, например, добавить индексы, увеличить какие-то буферы памяти). Может быть у табличек стоит engine сменить, какие они сейчас к слову? Сколько вообще табличек в базе, сколько в них записей?
Неактивен
На всякий случай выложил структуру единственной крупной таблицы (порядка 5 млн. записей). На ней, собственно, и идёт торможение.
Никакого обслуживания таблиц, кроме дефрагментации, не проводилось.
CREATE TABLE davp.events (
id bigint(12) UNSIGNED NOT NULL AUTO_INCREMENT,
receivernr tinyint(2) UNSIGNED DEFAULT NULL,
linenr tinyint(2) UNSIGNED DEFAULT NULL,
objectnr mediumint(8) UNSIGNED DEFAULT NULL,
clasificator char(1) DEFAULT NULL,
eventcode char(3) DEFAULT NULL,
groupnr char(2) DEFAULT NULL,
zonenumber char(3) DEFAULT NULL,
status tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
receivedtime timestamp DEFAULT CURRENT_TIMESTAMP,
priority tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
selectable tinyint(3) NOT NULL DEFAULT 1,
reactedtime timestamp NULL DEFAULT NULL,
addedtoarchivetime timestamp NULL DEFAULT NULL,
receivername varchar(30) DEFAULT NULL,
linename varchar(30) DEFAULT NULL,
retranslator tinyint(3) DEFAULT NULL,
receivedlevel tinyint(3) DEFAULT NULL,
retranslatorlevel tinyint(3) DEFAULT NULL,
reactiontype tinyint(3) DEFAULT NULL,
eventsource tinyint(3) DEFAULT NULL,
eventname varchar(100) DEFAULT NULL,
reactionid int(11) DEFAULT NULL,
repeated enum ('Yes', 'No') NOT NULL DEFAULT 'No',
playsound enum ('Yes', 'No') DEFAULT NULL,
Reminder enum ('No', 'Yes') NOT NULL DEFAULT 'No',
RemindInMinutes tinyint(3) DEFAULT NULL,
RemindInHours tinyint(3) DEFAULT NULL,
RemindFromTime datetime DEFAULT NULL,
Remind enum ('No', 'Yes') NOT NULL DEFAULT 'No',
RemindAtTime datetime DEFAULT NULL,
ObjectName varchar(100) DEFAULT NULL,
eventdescid int(9) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id),
INDEX addedtoarchivesindx (addedtoarchivetime),
INDEX clasificatorindx (clasificator),
INDEX eventcodeindx (eventcode),
INDEX groupnrindx (groupnr),
UNIQUE INDEX id (id),
INDEX id_2 (id),
INDEX linenrindx (linenr),
INDEX objectnrindx (objectnr),
INDEX priorityindx (priority),
INDEX reactedtimeindx (reactedtime),
INDEX reactiontypeindx (reactiontype),
INDEX receivedtimeindx (receivedtime),
INDEX receivernameindx (receivernr),
INDEX RemindIndx (Remind),
INDEX selectableindx (selectable),
INDEX statusindx (status),
INDEX zonenumberindx (zonenumber)
)
ENGINE = MYISAM
AUTO_INCREMENT = 15901920
AVG_ROW_LENGTH = 150
CHARACTER SET latin1
COLLATE latin1_swedish_ci
MAX_ROWS = 1000000000;
Неактивен
Что значит "торможение"? Если медленно выполняются запросы, то какие именно?
Неактивен
Софт подтормаживает при переключении на вкладку событий по конкретному объекту, то есть при выборке событий по objectnr с сортировкой по receivedtime и лимитом 60.
Неактивен
включите лог медленных запросов, тогда будет понятно есть ли медленные запросы и какие именно
Неактивен