Добрый день!
Кто-нибудь использует для базы bayes выделенный сервер PostgreSQL?
У меня проблема в MySQL. Т.к. сейчас использую для хранения базы bayes выделенные сервера MySQL (master-master).
При больших потоках писем вижу ошибки MySQL deadlock и жуткие тормоза.
Как работает Spamassassin bayes расположенная на выделенном сервере PostgreSQL
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Как работает Spamassassin bayes расположенная на выделенном сервере PostgreSQL
А какой тип таблиц в mysql? не myisaam случайно?
- Amaka
- мл. сержант
- Сообщения: 78
- Зарегистрирован: 2016-02-03 12:05:11
- Откуда: Москва
Как работает Spamassassin bayes расположенная на выделенном сервере PostgreSQL
Стоит InnoDB.
mysql Ver 14.14 Distrib 5.5.62, for FreeBSD11.2 (amd64) using readline 8.0
mysql Ver 14.14 Distrib 5.5.62, for FreeBSD11.2 (amd64) using readline 8.0
Код: Выделить всё
Create Table: CREATE TABLE `bayes_token` (
`id` int(11) NOT NULL DEFAULT '0',
`token` binary(5) NOT NULL DEFAULT '\0\0\0\0\0',
`spam_count` int(11) NOT NULL DEFAULT '0',
`ham_count` int(11) NOT NULL DEFAULT '0',
`atime` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`,`token`),
KEY `bayes_token_idx1` (`id`,`atime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Create Table: CREATE TABLE `bayes_seen` (
`id` int(11) NOT NULL DEFAULT '0',
`msgid` varchar(200) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
`flag` char(1) NOT NULL DEFAULT '',
`time_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`,`msgid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Create Table: CREATE TABLE `bayes_expire` (
`id` int(11) NOT NULL DEFAULT '0',
`runtime` int(11) NOT NULL DEFAULT '0',
KEY `bayes_expire_idx1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Create Table: CREATE TABLE `bayes_vars` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(200) NOT NULL DEFAULT '',
`spam_count` int(11) NOT NULL DEFAULT '0',
`ham_count` int(11) NOT NULL DEFAULT '0',
`token_count` int(11) NOT NULL DEFAULT '0',
`last_expire` int(11) NOT NULL DEFAULT '0',
`last_atime_delta` int(11) NOT NULL DEFAULT '0',
`last_expire_reduce` int(11) NOT NULL DEFAULT '0',
`oldest_token_age` int(11) NOT NULL DEFAULT '2147483647',
`newest_token_age` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `bayes_vars_idx1` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
Create Table: CREATE TABLE `bayes_global_vars` (
`variable` varchar(30) NOT NULL DEFAULT '',
`value` varchar(200) NOT NULL DEFAULT '',
PRIMARY KEY (`variable`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Всем удачи!
- skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Как работает Spamassassin bayes расположенная на выделенном сервере PostgreSQL
Ого, вот это динозавр 5.5. Обновитесь хотя бы до 5.6 или 5.7 (тут больше фиксов для Innodb, хотя по скорости немного медленнее, чем 5.6). Насчёт mysql 8, то она слишком медленная (по сравнению 5.6/5.7) и профита для её использования на продакшине под нагрузкой пока не вижу.
Лучше смотреть то, что сейчас на сервере, то есть
а не в скрипте. А видно на какой таблице deadlock'и?
Лучше смотреть то, что сейчас на сервере, то есть
Код: Выделить всё
mysql>show create table `bayes_vars`;
- Amaka
- мл. сержант
- Сообщения: 78
- Зарегистрирован: 2016-02-03 12:05:11
- Откуда: Москва
Как работает Spamassassin bayes расположенная на выделенном сервере PostgreSQL
Вот что в логах:
Но это возникает при большом потоке писем. У меня несколько серверов с установленным Spamassassin.
Код: Выделить всё
190423 14:04:15 [ERROR] Slave SQL: Error 'Deadlock found when trying to get lock; try restarting transaction' on query.
Default database: 'spamas_db'.
Query: 'INSERT INTO bayes_token
(id, token, spam_count, ham_count, atime)
VALUES ('2','<8E><AC>t<EC><84>','0','1','1528886783')
ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
ham_count = GREATEST(ham_count + '1', 0),
atime = GREATEST(atime, '1528886783')', Error_code: 1213
190423 14:04:33 [ERROR] Slave SQL: Error 'Deadlock found when trying to get lock; try restarting transaction' on query.
Default database: 'spamas_db'.
Query: 'INSERT INTO bayes_token
(id, token, spam_count, ham_count, atime)
VALUES ('2','<9D>mBi^T','0','1','1528886783')
ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
ham_count = GREATEST(ham_count + '1', 0),
atime = GREATEST(atime, '1528886783')', Error_code: 1213
190423 14:04:59 [ERROR] Slave SQL: Error 'Deadlock found when trying to get lock; try restarting transaction' on query.
Default database: 'spamas_db'.
Query: 'INSERT INTO bayes_token
(id, token, spam_count, ham_count, atime)
VALUES ('2','<9D>mBi^T','0','1','1528886783')
ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
ham_count = GREATEST(ham_count + '1', 0),
atime = GREATEST(atime, '1528886783')', Error_code: 1213
Всем удачи!