EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 7:20:07
В логах очень часто висит ошибка:
Код: Выделить всё
Jul 25 00:00:05 mail exim[71205]: failed to expand "${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}" while checking a list: lookup of "SELECT `domain` FROM `domain` WHERE `domain`='host.ru' AND `active`='1'" gave DEFER: MYSQL connection failed: User exim already has more than 'max_user_connections' active connections
при этом в my.cnf
Код: Выделить всё
max_connections = 12800
max_user_connections = 1260
и ресурсы при этом мускул прилично начинает жрать:
Код: Выделить всё
55936 mysql 1277 20 0 368M 191M kserel 0 59:46 2.49% mysqld
truth is out there...
kmb
-
Хостинг HostFood.ru
-
Хостинг HostFood.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/
-
zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
-
Контактная информация:
Непрочитанное сообщение
zingel » 2008-07-25 7:49:01
плохой мускул, не хватает ему этих max*
Z301171463546 - можно пожертвовать мне денег
zingel
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 8:18:03
извиняюсь, забыл дать
Код: Выделить всё
mysql -V
mysql Ver 14.14 Distrib 5.1.23-rc, for portbld-freebsd6.3 (i386) using 5.2
Код: Выделить всё
uname -a
FreeBSD mail.host.ru 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Mon Feb 25 19:35:58 MSK 2008 kmb@www.host.ru:/usr/obj/usr/src/sys/SMP-25022008 i386
Код: Выделить всё
Exim version 4.69 #0 (FreeBSD 6.3) built 22-Mar-2008 16:02:09
truth is out there...
kmb
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 8:19:00
zingel писал(а):плохой мускул, не хватает ему этих max*
предлагаете обновить мускул или увеличить число это еще?
truth is out there...
kmb
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-07-25 9:05:03
ты бы посмотрел сам mysql во время работы. Сколько у него подключений, кто подключен и т.п. Вообще конечно всё он нагрузки на сервер зависит.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:24:48
По нагрузке, около 5000 пользователей, если правильно считал около 200.000 писем в день, домен очень раскрученный, таблица с грейлистингом достигает 1-2Мегов...
truth is out there...
kmb
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:27:17
Код: Выделить всё
mysql> SHOW STATUS;
+-----------------------------------+----------+
| Variable_name | Value |
+-----------------------------------+----------+
| Aborted_clients | 9 |
| Aborted_connects | 8956791 |
| Binlog_cache_disk_use | 0 |
| Binlog_cache_use | 0 |
| Bytes_received | 130 |
| Bytes_sent | 347 |
| Com_admin_commands | 0 |
| Com_alter_db | 0 |
| Com_alter_event | 0 |
| Com_alter_table | 0 |
| Com_analyze | 0 |
| Com_backup_table | 0 |
| Com_begin | 0 |
| Com_call_procedure | 0 |
| Com_change_db | 0 |
| Com_change_master | 0 |
| Com_check | 0 |
| Com_checksum | 0 |
| Com_commit | 0 |
| Com_create_db | 0 |
| Com_create_event | 0 |
| Com_create_function | 0 |
| Com_create_index | 0 |
| Com_create_table | 0 |
| Com_create_user | 0 |
| Com_dealloc_sql | 0 |
| Com_delete | 0 |
| Com_delete_multi | 0 |
| Com_do | 0 |
| Com_drop_db | 0 |
| Com_drop_event | 0 |
| Com_drop_function | 0 |
| Com_drop_index | 0 |
| Com_drop_table | 0 |
| Com_drop_user | 0 |
| Com_execute_sql | 0 |
| Com_flush | 0 |
| Com_grant | 0 |
| Com_ha_close | 0 |
| Com_ha_open | 0 |
| Com_ha_read | 0 |
| Com_help | 0 |
| Com_insert | 0 |
| Com_insert_select | 0 |
| Com_kill | 0 |
| Com_load | 0 |
| Com_load_master_data | 0 |
| Com_load_master_table | 0 |
| Com_lock_tables | 0 |
| Com_optimize | 0 |
| Com_preload_keys | 0 |
| Com_prepare_sql | 0 |
| Com_purge | 0 |
| Com_purge_before_date | 0 |
| Com_rename_table | 0 |
| Com_repair | 0 |
| Com_replace | 0 |
| Com_replace_select | 0 |
| Com_reset | 0 |
| Com_restore_table | 0 |
| Com_revoke | 0 |
| Com_revoke_all | 0 |
| Com_rollback | 0 |
| Com_savepoint | 0 |
| Com_select | 1 |
| Com_set_option | 0 |
| Com_show_binlog_events | 0 |
| Com_show_binlogs | 0 |
| Com_show_charsets | 0 |
| Com_show_collations | 0 |
| Com_show_column_types | 0 |
| Com_show_create_db | 0 |
| Com_show_create_event | 0 |
| Com_show_create_table | 0 |
| Com_show_databases | 0 |
| Com_show_engine_logs | 0 |
| Com_show_engine_mutex | 0 |
| Com_show_engine_status | 0 |
| Com_show_errors | 0 |
| Com_show_events | 0 |
| Com_show_fields | 0 |
| Com_show_grants | 0 |
| Com_show_keys | 0 |
| Com_show_master_status | 0 |
| Com_show_new_master | 0 |
| Com_show_open_tables | 0 |
| Com_show_plugins | 0 |
| Com_show_privileges | 0 |
| Com_show_processlist | 0 |
| Com_show_slave_hosts | 0 |
| Com_show_slave_status | 0 |
| Com_show_status | 1 |
| Com_show_storage_engines | 0 |
| Com_show_tables | 0 |
| Com_show_triggers | 0 |
| Com_show_variables | 0 |
| Com_show_warnings | 0 |
| Com_slave_start | 0 |
| Com_slave_stop | 0 |
| Com_stmt_close | 0 |
| Com_stmt_execute | 0 |
| Com_stmt_fetch | 0 |
| Com_stmt_prepare | 0 |
| Com_stmt_reset | 0 |
| Com_stmt_send_long_data | 0 |
| Com_truncate | 0 |
| Com_unlock_tables | 0 |
| Com_update | 0 |
| Com_update_multi | 0 |
| Com_xa_commit | 0 |
| Com_xa_end | 0 |
| Com_xa_prepare | 0 |
| Com_xa_recover | 0 |
| Com_xa_rollback | 0 |
| Com_xa_start | 0 |
| Compression | OFF |
| Connections | 9065669 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 5 |
| Created_tmp_tables | 0 |
| Delayed_errors | 0 |
| Delayed_insert_threads | 0 |
| Delayed_writes | 0 |
| Flush_commands | 1 |
| Handler_commit | 0 |
| Handler_delete | 0 |
| Handler_discover | 0 |
| Handler_prepare | 0 |
| Handler_read_first | 0 |
| Handler_read_key | 0 |
| Handler_read_next | 0 |
| Handler_read_prev | 0 |
| Handler_read_rnd | 0 |
| Handler_read_rnd_next | 0 |
| Handler_rollback | 0 |
| Handler_savepoint | 0 |
| Handler_savepoint_rollback | 0 |
| Handler_update | 0 |
| Handler_write | 0 |
| Innodb_buffer_pool_pages_data | 19 |
| Innodb_buffer_pool_pages_dirty | 0 |
| Innodb_buffer_pool_pages_flushed | 0 |
| Innodb_buffer_pool_pages_free | 493 |
| Innodb_buffer_pool_pages_latched | 0 |
| Innodb_buffer_pool_pages_misc | 0 |
| Innodb_buffer_pool_pages_total | 512 |
| Innodb_buffer_pool_read_ahead_rnd | 1 |
| Innodb_buffer_pool_read_ahead_seq | 0 |
| Innodb_buffer_pool_read_requests | 77 |
| Innodb_buffer_pool_reads | 12 |
| Innodb_buffer_pool_wait_free | 0 |
| Innodb_buffer_pool_write_requests | 0 |
| Innodb_data_fsyncs | 3 |
| Innodb_data_pending_fsyncs | 0 |
| Innodb_data_pending_reads | 0 |
| Innodb_data_pending_writes | 0 |
| Innodb_data_read | 2494464 |
| Innodb_data_reads | 25 |
| Innodb_data_writes | 3 |
| Innodb_data_written | 1536 |
| Innodb_dblwr_pages_written | 0 |
| Innodb_dblwr_writes | 0 |
| Innodb_log_waits | 0 |
| Innodb_log_write_requests | 0 |
| Innodb_log_writes | 1 |
| Innodb_os_log_fsyncs | 3 |
| Innodb_os_log_pending_fsyncs | 0 |
| Innodb_os_log_pending_writes | 0 |
| Innodb_os_log_written | 512 |
| Innodb_page_size | 16384 |
| Innodb_pages_created | 0 |
| Innodb_pages_read | 19 |
| Innodb_pages_written | 0 |
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_time | 0 |
| Innodb_row_lock_time_avg | 0 |
| Innodb_row_lock_time_max | 0 |
| Innodb_row_lock_waits | 0 |
| Innodb_rows_deleted | 0 |
| Innodb_rows_inserted | 0 |
| Innodb_rows_read | 0 |
| Innodb_rows_updated | 0 |
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 346 |
| Key_blocks_used | 28995 |
| Key_read_requests | 6670738 |
| Key_reads | 78243 |
| Key_write_requests | 296301 |
| Key_writes | 279275 |
| Last_query_cost | 0.000000 |
| Max_used_connections | 1280 |
| Not_flushed_delayed_rows | 0 |
| Open_files | 1264 |
| Open_streams | 0 |
| Open_table_definitions | 32 |
| Open_tables | 1259 |
| Opened_files | 5224 |
| Opened_tables | 0 |
| Prepared_stmt_count | 0 |
| Qcache_free_blocks | 5 |
| Qcache_free_memory | 11646624 |
| Qcache_hits | 46545 |
| Qcache_inserts | 6948 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 363472 |
| Qcache_queries_in_cache | 4985 |
| Qcache_total_blocks | 9987 |
| Questions | 913794 |
| Rpl_status | NULL |
| Select_full_join | 0 |
| Select_full_range_join | 0 |
| Select_range | 0 |
| Select_range_check | 0 |
| Select_scan | 0 |
| Slave_open_temp_tables | 0 |
| Slave_retried_transactions | 0 |
| Slave_running | OFF |
| Slow_launch_threads | 0 |
| Slow_queries | 0 |
| Sort_merge_passes | 0 |
| Sort_range | 0 |
| Sort_rows | 0 |
| Sort_scan | 0 |
| Table_locks_immediate | 708202 |
| Table_locks_waited | 45944 |
| Tc_log_max_pages_used | 0 |
| Tc_log_page_size | 0 |
| Tc_log_page_waits | 0 |
| Threads_cached | 7 |
| Threads_connected | 1270 |
| Threads_created | 8911 |
| Threads_running | 1260 |
| Uptime | 76824 |
+-----------------------------------+----------+
233 rows in set (0.05 sec)
truth is out there...
kmb
-
zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
-
Контактная информация:
Непрочитанное сообщение
zingel » 2008-07-25 9:28:03
многовато, мускул не справится с этим, нужно чекер под такое мыло ставить, да ещё на постгресе желательно (разносить базу и сам MTA на разные серваки, MUA - желательно тоже)
Z301171463546 - можно пожертвовать мне денег
zingel
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-07-25 9:33:19
Как вариант второй сервак с mysql, а в exim прописать сервера через :
Т.е. hide mysql_servers = ...server1 : ...server2
show processlist глянь. Кэш увеличь. (query_cache_size = 128M)
Попробуй оттюнить mysql. Посмотри долгие запросы. и т.п.
P.S. exim должен кэшировать данные. Посмотри, что кэшируется что нет.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:35:37
zingel писал(а):многовато, мускул не справится с этим, нужно чекер под такое мыло ставить, да ещё на постгресе желательно (разносить базу и сам MTA на разные серваки, MUA - желательно тоже)
Такой возможности нет.
truth is out there...
kmb
-
zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
-
Контактная информация:
Непрочитанное сообщение
zingel » 2008-07-25 9:36:16
если на одном оставлять, то нужно оперативки увеличить и ядро тюнить жестоко - добавить SysV
Z301171463546 - можно пожертвовать мне денег
zingel
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:39:27
dikens3 писал(а):Как вариант второй сервак с mysql, а в exim прописать сервера через :
Т.е. hide mysql_servers = ...server1 : ...server2
show processlist глянь. Кэш увеличь. (query_cache_size = 128M)
Попробуй оттюнить mysql. Посмотри долгие запросы. и т.п.
P.S. exim должен кэшировать данные. Посмотри, что кэшируется что нет.
посмотрел processlist, да почти все запросы связаны с грейлистингом.... query_cache_size стоит 16М, увеличу посмотрим... Если нет, тогда видимо придеться грейлистинг выкинуть...
truth is out there...
kmb
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:43:05
zingel писал(а):если на одном оставлять, то нужно оперативки увеличить и ядро тюнить жестоко - добавить SysV
CPU: Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz
ОЗУ 2048 MB
2 винта по 250 гиг
truth is out there...
kmb
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:46:21
по ядру вот:
Код: Выделить всё
[root@mail.host.ru] /usr/src/sys/i386/conf# less SMP-25022008
#
# SMP -- Generic kernel configuration file for FreeBSD/i386 SMP
# Use this for multi-processor machines
#
# $FreeBSD: src/sys/i386/conf/SMP,v 1.5.6.1 2005/09/18 03:37:58 scottl Exp $
include GENERIC
ident SMP-GENERIC-25022008
# To make an SMP kernel, the next line is needed
options SMP # Symmetric MultiProcessor Kernel
options SUIDDIR
options SYSVSHM
options SYSVSEM
options SYSVMSG
options SHMMAXPGS=65536
options SEMMNI=40
options SEMMNS=240
options SEMUME=40
options SEMMNU=120
options MAXDSIZ=(1024UL*1024*1024)
options MAXSSIZ=(128UL*1024*1024)
options DFLDSIZ=(1024UL*1024*1024)
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
truth is out there...
kmb
-
zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
-
Контактная информация:
Непрочитанное сообщение
zingel » 2008-07-25 9:48:10
мало оперативки, нужно 4 минимум под 200 000 сообщейний/день
Z301171463546 - можно пожертвовать мне денег
zingel
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-07-25 9:50:55
посмотрел processlist, да почти все запросы связаны с грейлистингом.... query_cache_size стоит 16М, увеличу посмотрим... Если нет, тогда видимо придеться грейлистинг выкинуть...
1. В полезных скриптах есть greylist на основе простых файлов.
2. Привентивные меры тебе нужны, блокировки по EHLO/HELO и т.п. чтобы разгрузить GREYLIST.
3. Редко изменяемые данные можно убрать из mysql (Количество доменов к примеру редко изменяется)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:53:27
Они есть, основной конфиг с этого сайта... Ед-ое если я правильно понимаю, первым делом работает грейлистинг, а уже потом всё основное...
truth is out there...
kmb
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2008-07-25 9:55:03
kmb писал(а):Они есть, основной конфиг с этого сайта... Ед-ое если я правильно понимаю, первым делом работает грейлистинг, а уже потом всё основное...
У меня сначала идут всевозможные блокировки, а уже потом greylist.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 9:58:45
перенёс, подождем теперь несколько дней.
truth is out there...
kmb
-
Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2008-07-25 11:23:43
200 тыщщ доставок или чего?
eximstat запустите с логом за один день - он скажет чего соколько.
========
примерно в часы максимальной нагрузки - дайте...
Убей их всех! Бог потом рассортирует...
Alex Keda
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 12:00:53
200 тыщщ всего.
у меня eximstats не хочет работать: **** No valid log lines read.
=====
Ну в пике загрузке примерно 80-90
truth is out there...
kmb
-
Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2008-07-25 12:09:17
ему надо оригинальный лог вкормить, а не из сислога
Убей их всех! Бог потом рассортирует...
Alex Keda
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-25 12:53:24
ясно, спасибо.
truth is out there...
kmb
-
kmb
- лейтенант
- Сообщения: 680
- Зарегистрирован: 2007-02-20 8:30:03
-
Контактная информация:
Непрочитанное сообщение
kmb » 2008-07-28 14:20:57
truth is out there...
kmb
-
Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2008-07-28 14:31:29
тогда цифирки для муси маленькие.
у меня
Код: Выделить всё
max_user_connections = 800
max_connections = 1000
при этом когда было вдвое или втрое меньше - нехватало (у меня поток на порядок меньше)
значит вам надо увеличить минимум втрое.
Убей их всех! Бог потом рассортирует...
Alex Keda