是的,因为对mysql稍微熟悉一点,可以做些二次开发。而且之前的邮件系统也是基于mysql的,账号迁移比较方便。
页次 1
支持 Red Hat Enterprise Linux, CentOS, Scientific Linux, Debian, Ubuntu, FreeBSD, OpenBSD
您尚未登陆。 请选择登陆或是注册一个新账号。
iRedMail 开源邮件服务解决方案 » 由 thatday 发表的文章
页次 1
是的,因为对mysql稍微熟悉一点,可以做些二次开发。而且之前的邮件系统也是基于mysql的,账号迁移比较方便。
看了相关资料,怀疑是amavisd过滤邮件引起,所以重新开启了iredapd服务,
通过调大amavisd的子进程数
$max_servers = 4;
然后将/etc/postfix/master.cf中amavisd部分修改为
smtp-amavis unix - - - - 4 smtp
观察了半天,直到刚才,又出现10几封邮件退信到管理邮箱。
查了一下iredapd进程,发现很多TIME_WAIT,怀疑到底是不是iredapd引起?
请张老大看看,谢谢了!
[root@mail ~]# netstat -na|grep 7777
tcp 0 0 127.0.0.1:7777 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:7777 127.0.0.1:40734 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40735 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40732 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40733 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40730 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40731 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40728 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40729 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40726 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40727 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40724 FIN_WAIT2
tcp 0 0 127.0.0.1:7777 127.0.0.1:40725 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40722 FIN_WAIT2
tcp 0 0 127.0.0.1:7777 127.0.0.1:40723 FIN_WAIT2
tcp 0 0 127.0.0.1:7777 127.0.0.1:40719 FIN_WAIT2
tcp 0 0 127.0.0.1:7777 127.0.0.1:40717 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40715 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40712 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40766 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40764 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40765 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40763 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40760 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40761 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40758 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40759 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40756 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40757 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40754 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40755 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40752 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40753 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40751 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40749 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40746 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40747 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40744 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40742 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40740 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40741 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40738 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40739 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40736 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40737 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:47448 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40782 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40781 FIN_WAIT2
tcp 0 0 127.0.0.1:7777 127.0.0.1:40778 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40779 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40776 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40777 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40774 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40775 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40772 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40773 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40770 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40771 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40768 TIME_WAIT
tcp 0 0 127.0.0.1:7777 127.0.0.1:40769 TIME_WAIT
tcp 1 0 127.0.0.1:40781 127.0.0.1:7777 CLOSE_WAIT
tcp 1 0 127.0.0.1:40719 127.0.0.1:7777 CLOSE_WAIT
tcp 1 0 127.0.0.1:40722 127.0.0.1:7777 CLOSE_WAIT
tcp 1 0 127.0.0.1:40723 127.0.0.1:7777 CLOSE_WAIT
tcp 1 0 127.0.0.1:40724 127.0.0.1:7777 CLOSE_WAIT
说来也很奇怪,我也查了mysql手册,Connections表示已经建立的连接和尝试建立的连接,原则上只是一个统计,并不是并发连接数量,但iredmail0.7.1环境里面,一旦这个connections超过mysql设置的最大连接数,邮件客户端就不断抛出“Out: 451 4.3.0 <xxx@yyy.com>: Temporary lookup failure”这样的错误,很多用户都反映邮件发不出去,连接服务器失败!
昨晚就已经升级了iredapd1.3.6,(老大说这个版本解决了mysql连接释放问题。)
今天下午将近下班的时候又出现这种错误,之前出现错误只有重启mysql服务,今天我把postfix配置文件里面调用iredapd(也就是127.0.0.1:7777)屏蔽掉,并停掉iredapd服务,到现在也没有出现错误了……
接下来再观察观察,看看到底是不是因为iredapd引起的,因为之前用iredmail老版本,没有安装iredapd服务的时候,好像从未出现过mysql错误。
另外,汇报一个最新情况。经过昨晚iredapd1.3.6的升级,mysql中sleep的进程数明显降低了很多。但connections数量太多还是有点担心,因为作为邮件系统,当connections数量超过 max_connections 的时候,收发邮件就出现问题了,只有重启mysqld进程才可,郁闷哦!
能帮忙检查出是哪个程序在不断增加 thread 么?我这里没有这样的环境可供分析。
[root@mail ~]# netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
TIME_WAIT 110
CLOSE_WAIT 3
FIN_WAIT2 4
ESTABLISHED 64
查看系统网络连接状态,也并没有出现异常呀。
mysql> show status like '%connect%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Aborted_connects | 3 |
| Connections | 873 |
| Max_used_connections | 44 |
| Ssl_client_connects | 0 |
| Ssl_connect_renegotiates | 0 |
| Ssl_finished_connects | 0 |
| Threads_connected | 21 |
+--------------------------+-------+
7 rows in set (0.00 sec)
刚刚查了一下资料,mysql中
Threads_connected 表示当前的连接数
Connections 表示试图连接到(不管是否成功)MySQL服务器的连接数。
Max_used_connections 表示服务器启动后已经同时使用的连接的最大数量。
我服务器中Connections连接数过多,但查看系统网络连接参数又无异常,所以我觉得这个问题非常诡异。
另外,我好像以前加过你的msn哦,我是EMOS的前期技术指导……哈。
在centos5.6下面安装iredmail0.7.1,其他都比较正常,就是mysql的连接数过高,昨天更新了老大的iredapd1.3.6,在mysql里面show processlist,进程数是减少了,得到了及时的释放。但连接数还是不断增加。
mysql> show status like '%Threads%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| Delayed_insert_threads | 0 |
| Slow_launch_threads | 0 |
| Threads_cached | 0 |
| Threads_connected | 23 |
| Threads_created | 8728 |
| Threads_running | 1 |
+------------------------+-------+
6 rows in set (0.00 sec)
mysql> show status like '%connect%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Aborted_connects | 1 |
| Connections | 8839 |
| Max_used_connections | 49 |
| Ssl_client_connects | 0 |
| Ssl_connect_renegotiates | 0 |
| Ssl_finished_connects | 0 |
| Threads_connected | 23 |
+--------------------------+-------+
7 rows in set (0.00 sec)
从mysql状态可以看出,实际连接的线程数只有20多个,但增加的连接数多达8000多个,一直不减,估计到最后,mysql又会超出连接数(我已经设置mysql连接数位10000)。
请老大帮忙分析分析,到底是什么原因引起的?
将 /opt/iredapd/etc/iredapd.ini 里的 log_level 参数设置为 debug,重启 iredapd 之后它会记录很多详细的 debug 信息,尝试从 debug 信息里看一下它报什么错误。
[general] ... log_level = debug
昨天把freebsd又换成linux了就可以了,有机会再在freebsd下面测试一下。
这个是 iRedMail 的 v0.7.0 和 v0.7.1 里 MySQL 版的一个已知问题:iRedAPD 会很快占满 MySQL 的所有可用连接,导致无法连接 iredapd 服务。
这里是解决方案:
http://www.iredmail.org/forum/topic1972 … denly.html
这个问题可把我害苦了,我将整个企业邮局从linux迁移到freebsd,最后才发现原来是iredapd的mysql连接没有及时关闭,造成mysql频繁当掉,客户端总出现连接服务器timeout提示。研究了几天mysql的参数设置,不断调整my.cnf参数也无济于事。
总之,已经更新了iredapd 1.3.6,希望这个问题能就此解决。
辛苦老大!
同样是iRedMail-0.7.1,在linux下面,别名邮件接收规则没问题。
但在freebsd8.2下面安装了iRedMail-0.7.1,设置好别名和接收规则,只允许别名管理员接收,但不生效,重启iredapd服务也不行!
iredapd日志为:
2011-05-23 16:11:03 INFO Starting iredapd (v1.3.5, pid: 1502), listening on 127.0.0.1:7777.
2011-05-23 16:11:19 INFO kevin@green.com -> info@green.com, DUNNO
2011-05-23 16:25:49 INFO Starting iredapd (v1.3.6, pid: 1626), listening on 127.0.0.1:7777.
2011-05-23 16:26:24 INFO kevin@green.com -> info@green.com, DUNNO
别名接收规则不管设置为那一种,结果都是DUNNO,所有人都可以给这个info@green.com发送邮件。
请问张老大,这是怎么回事呢?
似乎是postfix2.6出了问题,我进ports手工make install一下,是可以正常安装的,但是用iredmail安装脚本就说某个路径不存在什么的,我水平有限找不到办法,所以来这里请求指导。谢谢!
我猜,是不是因为/var/db/ports/postfix/options这里边的参数是针对postfix2.5的,所以用这些参数编译2.6的postfix才会报错?要是这样的话,老大应该在这里做个判断,如果是2.5的,就往/var/db/ports/postfix/options这里添加目前的参数,如果是2.6的postfix,就另行处理,老大觉得呢?
页次 1
iRedMail 开源邮件服务解决方案 » 由 thatday 发表的文章
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 3 official extensions. Copyright © 2003–2010 PunBB.
页面生成时间 0.010 秒, 共执行查询 59 条