1

Topic: login to iRedAdmin-Pro is too slow

==== Provide basic information to help troubleshoot ====
- iRedMail version:
- Linux/BSD distribution name and version:
- Any related log? Log is helpful for troubleshooting.
====

Hi,

after i have updated to the new 1.3.0 CP, i face problem in logging into it.
sometimes it log me in slowly and sometimes it does not log me in at all.

i have checked file permissions and there was no changes since last time of working.

my iRedMail version is 0.7
Linux : CentOS 5.5

2

Re: login to iRedAdmin-Pro is too slow

Try to disable Amavisd integration in iRedAdmin-Pro first, then restart Apache web service, see whether or not it's faster.

[amavisd]
quarantine = False
logging_into_sql = False

There must be some performance issues with SQL commands used to query Amavisd database.

Also, may i know how many records you have in table "msgs" and "msgrcpt" of database "amavisd"?

3

Re: login to iRedAdmin-Pro is too slow

I have made the above settings but nothing changed.

please note that round cube and other services like ssh are working normally


msgs: ~50,312    
msgrcpt: ~168,691

4

Re: login to iRedAdmin-Pro is too slow

It's caused by an 'DELETE' command which used to delete mails older than 30 days (it's defined in libs/settings.py, default is 30 days).
Still working on it, attachment's a tempary patch for iRedAdmin-Pro-MySQL-1.3.0 to solve it:

# patch -p3 < /path/to/not_delete_old.patch
patching file controllers/mysql/basic.py
patching file libs/amavisd/log.py
Post's attachments

not_delete_old.patch 3.63 kb, 22 downloads since 2011-08-22 

You don't have the permssions to download the attachments of this post.

5 (edited by rjnena 2011-08-22 19:32:49)

Re: login to iRedAdmin-Pro is too slow

Thanks a lot

the above patch resolved the log in issue.

but when i tried to release quarantine emails i have an error message: Error: (1205, 'Lock wait timeout exceeded
this appears after waiting long time on the page.

is this the same as above ?! and how i can solve it

6

Re: login to iRedAdmin-Pro is too slow

rjnena wrote:

is this the same as above ?! and how i can solve it

Yes. Attachment is another patch to fix this issue.

# patch -p3 < ~/not_delete_old_2.patch
patching file libs/amavisd/log.py

This patch fixes bad SQL command, so it's considered to be a final fix.

Post's attachments

not_delete_old_2.patch 1.25 kb, 24 downloads since 2011-08-22 

You don't have the permssions to download the attachments of this post.

7

Re: login to iRedAdmin-Pro is too slow

the last patch didn't solvedd the quarantine delete or release issue.

can you please give me another solution.

the same wrong message appear after a while: Error: (1205, 'Lock wait timeout exceeded

8

Re: login to iRedAdmin-Pro is too slow

rjnena wrote:

the last patch didn't solvedd the quarantine delete or release issue.

Is it possible to show me output of below MySQL command when you try to delete/release quarantined mails?

$ mysql -uroot -p
mysql> SHOW FULL PROCESSLIST;

Also, how many records do you have in table "amavisd.quarantine"?

9

Re: login to iRedAdmin-Pro is too slow

amavisd.quarantine Records: 617

I made restart to mysql service first then deleted the quarantined emails. it works now.

attached the output of  file of show processes command.

Post's attachments

output 23.56 kb, 17 downloads since 2011-08-24 

You don't have the permssions to download the attachments of this post.

10

Re: login to iRedAdmin-Pro is too slow

Thanks for help, will try to tune it later.

11 (edited by david222 2011-08-24 22:32:25)

Re: login to iRedAdmin-Pro is too slow

Hi,
I think you should add indexes and use inner join for delete.

echo "ALTER TABLE msgs ADD INDEX msg_idx_content_time_num (content, time_num);" |mysql -u root -p amavisd
echo "ALTER TABLE `msgs` ADD INDEX `mail_id` (`mail_id`);" |mysql -u root -p amavisd


echo "DELETE msgrcpt.* FROM msgrcpt INNER JOIN msgs USING(mail_id) WHERE msgs.content IN ('U', 'M', 'H', 'O', 'C') AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY))"|mysql -u root -p amavisd
echo "DELETE FROM msgs WHERE msgs.content IN ('U', 'M', 'H', 'O', 'C') AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY))"|mysql -u root -p amavisd

Do you see any problem if I execute

DELETE FROM msgrcpt LEFT JOIN msgs using(mail_id) WHERE isnull(msgs.mail_id)

12

Re: login to iRedAdmin-Pro is too slow

Hi David,
Really appreciate your contribution, i will test your SQL commands later.

- I already found index issue of "msg_idx_content_time_num (content, time_num)", will add it in iRedMail later.
- I cannot believe that Amavisd doesn't create index for msgs.mail_id by default... terrible. Will add it too.

david222 wrote:

Do you see any problem if I execute

DELETE FROM msgrcpt LEFT JOIN msgs using(mail_id) WHERE isnull(msgs.mail_id)

What's the problem? Sorry, i'm not a MySQL expert. sad

13

Re: login to iRedAdmin-Pro is too slow

Amavisd doesn't add index for msgs.mail_id because mail_id is not unique, your way of deleting logs is wrong, you should add partition_tag.

14

Re: login to iRedAdmin-Pro is too slow

rjnena wrote:

amavisd.quarantine Records: 617

I made restart to mysql service first then deleted the quarantined emails. it works now.

Just found Amavisd doesn't create index (quarantine.mail_id) by default, so it's slow.
You can solve it by adding one more index:

$ mysql -uroot -p
mysql> USE amavisd;
mysql> CREATE INDEX quar_idx_mail_id ON quarantine (mail_id);

15

Re: login to iRedAdmin-Pro is too slow

hi all,

i have the same problem on my server.
If i have spam on quarantine, login is very slow!! i have try to delete quarantine email and relogin on server and it is fast!!

i have apply 2 patch and mysql fix, but not solve the problem when i have spam on quarantine...
after i have tryed to use a old iRedAdmin version(1.2.1) and it works correctly!!

bye bye!!
Luciano

16

Re: login to iRedAdmin-Pro is too slow

luciono wrote:

i have apply 2 patch and mysql fix, but not solve the problem when i have spam on quarantine...

How can i reproduce this issue?
What operations did you perform with iRedAdmin-Pro?

luciono wrote:

after i have tryed to use a old iRedAdmin version(1.2.1) and it works correctly!!

iRedAdmin-Pro-MySQL-1.2.1?

17

Re: login to iRedAdmin-Pro is too slow

ZhangHuangbin wrote:

How can i reproduce this issue?
What operations did you perform with iRedAdmin-Pro?

Hi Zhang,
today i had made more test on my server and after restart the server, logon is fast (3-4 seconds) (only with 8 qurantine mail)
tomrrow i want try with more spam on quarantine and tell you!

ZhangHuangbin wrote:

iRedAdmin-Pro-MySQL-1.2.1?

yes

bye bye and thanks a lot for your quick help smile
Luciano

18

Re: login to iRedAdmin-Pro is too slow

hi Zhang,
on this week i have made more test on my server and after latest restart i have solved any problem!! now logon without spam is on 3-4 seconds and with 160 spam email is 5 seconds ~!!

another minor bug i have found is when delete quarantine mail with "delete all in database"... after one week having 160 spam email i have click on "delete all in database" but have deleted only 28 mail... this is not a problem.. i have deleted all spam with select all and "delete selected"

bye bye!
and thanks

Luciano

19

Re: login to iRedAdmin-Pro is too slow

luciono wrote:

with 160 spam email is 5 seconds ~!!

5 seconds is slow, will try to tune it in later release.

luciono wrote:

another minor bug i have found is when delete quarantine mail with "delete all in database"... after one week having 160 spam email i have click on "delete all in database" but have deleted only 28 mail... this is not a problem.. i have deleted all spam with select all and "delete selected"

That's weird, it must be a bug in iRedAdmin-Pro. Will try to reproduce this issue and fix it in later release.

Thanks very much for your feedback. smile

20 (edited by hoho 2011-09-17 10:20:52)

Re: login to iRedAdmin-Pro is too slow

I have the same issue and I am using iRedAdmin-Pro LDAP 1.6.2, What can I do this moment ?

iRedMail 0.73
CentOS 5.4

21 (edited by wayneliao38 2011-09-19 17:56:33)

Re: login to iRedAdmin-Pro is too slow

I also have same problem, sometimes almost take about 20 mins.

iRedAdmin-Pro LDAP 1.6.2

22 (edited by Juanito 2011-09-28 00:16:41)

Re: login to iRedAdmin-Pro is too slow

Hi Zhang.  I'm expending over +40minutes to login into iredadmin pro with mysql backend.
I have applied your final fix (not_delete_old_2.patch) but the same result.

mysql> show full processlist;
| Id   | User       | Host            | db        | Command | Time | State        | Info                                                                                                                                                                                                               
|   76 | vmail      | localhost:57242 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
|   81 | vmailadmin | localhost:57244 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
|  306 | vmail      | localhost:43306 | vmail     | Sleep   |  107 |              | NULL                                                                                                                                                                                                               
|  308 | vmail      | localhost:43309 | vmail     | Sleep   |  107 |              | NULL                                                                                                                                                                                                               
|  571 | vmail      | localhost:43526 | vmail     | Sleep   | 1074 |              | NULL                                                                                                                                                                                                               
|  661 | vmail      | localhost:43589 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 1228 | vmail      | localhost:59316 | vmail     | Sleep   | 1529 |              | NULL                                                                                                                                                                                                               
| 1861 | vmail      | localhost:59800 | vmail     | Sleep   | 1529 |              | NULL                                                                                                                                                                                                               
| 1863 | vmail      | localhost:59802 | vmail     | Sleep   | 1530 |              | NULL                                                                                                                                                                                                               
| 5298 | vmail      | localhost:46855 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 5299 | vmail      | localhost:46856 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 5300 | vmail      | localhost:46857 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 5736 | vmail      | localhost:55539 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 5737 | vmail      | localhost:55540 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 5738 | vmail      | localhost:55541 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 5739 | vmail      | localhost:55542 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 5740 | vmail      | localhost:55543 | vmail     | Sleep   |   18 |              | NULL                                                                                                                                                                                                               
| 5741 | vmail      | localhost:55544 | vmail     | Sleep   |   18 |              | NULL                                                                                                                                                                                                               
| 5742 | vmail      | localhost:55545 | vmail     | Sleep   |   18 |              | NULL                                                                                                                                                                                                               
| 5743 | vmail      | localhost:55546 | vmail     | Sleep   |   18 |              | NULL                                                                                                                                                                                                               
| 5744 | vmail      | localhost:55547 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5745 | vmail      | localhost:55548 | vmail     | Sleep   |   23 |              | NULL                                                                                                                                                                                                               
| 5746 | vmail      | localhost:55549 | vmail     | Sleep   |   23 |              | NULL                                                                                                                                                                                                               
| 5747 | vmail      | localhost:55550 | vmail     | Sleep   |   23 |              | NULL                                                                                                                                                                                                               
| 5749 | vmail      | localhost:55554 | vmail     | Sleep   |    3 |              | NULL                                                                                                                                                                                                               
| 5750 | vmail      | localhost:55555 | vmail     | Sleep   |    3 |              | NULL                                                                                                                                                                                                               
| 5751 | vmail      | localhost:55556 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5752 | vmail      | localhost:55557 | vmail     | Sleep   |    3 |              | NULL                                                                                                                                                                                                             
| 5753 | vmail      | localhost:55558 | vmail     | Sleep   |    3 |              | NULL                                                                                                                                                                                                               
| 5755 | vmail      | localhost:55560 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5756 | vmail      | localhost:55561 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5757 | vmail      | localhost:55562 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5758 | vmail      | localhost:55563 | vmail     | Sleep   |   26 |              | NULL                                                                                                                                                                                                               
| 5759 | vmail      | localhost:55564 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 5760 | vmail      | localhost:55565 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 5761 | vmail      | localhost:55566 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 5762 | vmail      | localhost:55567 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 5766 | vmail      | localhost:55572 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5767 | vmail      | localhost:55573 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5768 | vmail      | localhost:55574 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5769 | vmail      | localhost:55575 | vmail     | Sleep   |    0 |              | NULL                                                                                                                                                                                                               
| 5838 | vmail      | localhost:55635 | vmail     | Sleep   |   26 |              | NULL                                                                                                                                                                                                               
| 5907 | iredadmin  | localhost:55675 | iredadmin | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5908 | vmailadmin | localhost:55676 | vmail     | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5909 | vmailadmin | localhost:55677 | vmail     | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5910 | vmailadmin | localhost:55678 | vmail     | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5911 | vmailadmin | localhost:55679 | vmail     | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5912 | amavisd    | localhost:55680 | amavisd   | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5913 | vmailadmin | localhost:55681 | vmail     | Sleep   |  181 |              | NULL                                                                                                                                                                                                               
| 5914 | amavisd    | localhost:55682 | amavisd   | Query   |  181 | Sending data | DELETE FROM msgrcpt WHERE mail_id IN (SELECT mail_id FROM msgs WHERE content IN ('U', 'M', 'H', 'O', 'C')                         AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))
                ) |
| 5972 | vmail      | localhost:55731 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 5973 | vmail      | localhost:55732 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 5974 | vmail      | localhost:55733 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 5975 | vmail      | localhost:55734 | vmail     | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 6100 | amavisd    | localhost:55833 | amavisd   | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 6137 | amavisd    | localhost:55855 | amavisd   | Sleep   |    1 |              | NULL                                                                                                                                                                                                               
| 6163 | vmail      | localhost:55869 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 6164 | vmail      | localhost:55870 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 6165 | vmail      | localhost:55871 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 6166 | vmail      | localhost:55872 | vmail     | Sleep   |   56 |              | NULL                                                                                                                                                                                                               
| 6199 | vmail      | localhost:55897 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 6200 | vmail      | localhost:55899 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 6201 | vmail      | localhost:55900 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 6202 | vmail      | localhost:55901 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 6213 | vmail      | localhost:55913 | vmail     | Sleep   |   34 |              | NULL                                                                                                                                                                                                               
| 6214 | vmail      | localhost:55914 | vmail     | Sleep   |   34 |              | NULL                                                                                                                                                                                                               
| 6242 | vmail      | localhost:48466 | vmail     | Sleep   |   16 |              | NULL                                                                                                                                                                                                               
| 6245 | root       | localhost       | amavisd   | Query   |    0 | NULL         | show full processlist                                                                                                                                                                                               

68 rows in set (0.00 sec)

mysql> explain select * FROM msgrcpt WHERE mail_id IN (SELECT mail_id FROM msgs WHERE content IN ('U', 'M', 'H', 'O', 'C') AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)));
+----+--------------------+---------+-------+-------------------+-------------------+---------+------+--------+-------------+
| id | select_type        | table   | type  | possible_keys     | key               | key_len | ref  | rows   | Extra       |
+----+--------------------+---------+-------+-------------------+-------------------+---------+------+--------+-------------+
|  1 | PRIMARY            | msgrcpt | ALL   | NULL              | NULL              | NULL    | NULL | 359334 | Using where |
|  2 | DEPENDENT SUBQUERY | msgs    | range | msgs_idx_time_num | msgs_idx_time_num | 4       | NULL | 105408 | Using where |
+----+--------------------+---------+-------+-------------------+-------------------+---------+------+--------+-------------+
2 rows in set (0.00 sec)


Thanks


Edited:

After create the two indexes suggested above,

mysql> ALTER TABLE msgs ADD INDEX msg_idx_content_time_num (content, time_num);
mysql> ALTER TABLE `msgs` ADD INDEX `mail_id` (`mail_id`);

login takes "only" 15 seconds.

The new query explanation es:

mysql> explain select * FROM msgrcpt WHERE mail_id IN (SELECT mail_id FROM msgs WHERE content IN ('U', 'M', 'H', 'O', 'C') AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)));
+----+--------------------+---------+----------------+----------------------------------------------------+---------+---------+------+--------+-------------+
| id | select_type        | table   | type           | possible_keys                                      | key     | key_len | ref  | rows   | Extra       |
+----+--------------------+---------+----------------+----------------------------------------------------+---------+---------+------+--------+-------------+
|  1 | PRIMARY            | msgrcpt | ALL            | NULL                                               | NULL    | NULL    | NULL | 358612 | Using where |
|  2 | DEPENDENT SUBQUERY | msgs    | index_subquery | msgs_idx_time_num,msg_idx_content_time_num,mail_id | mail_id | 18      | func |      1 | Using where |
+----+--------------------+---------+----------------+----------------------------------------------------+---------+---------+------+--------+-------------+
2 rows in set (0.00 sec)

23

Re: login to iRedAdmin-Pro is too slow

Hmm, still not working smoothly with this 'DELETE' command:

DELETE FROM msgrcpt WHERE mail_id IN (SELECT mail_id FROM msgs WHERE content IN ('U', 'M', 'H', 'O', 'C') AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)))

So sorry about this trouble, will try to improve it, thanks very much for your feedback.

24

Re: login to iRedAdmin-Pro is too slow

Hi Huangbin,

It really is quite unworkable this way. I'm no SQL expert, but in a situation like this I would do this in two steps to avoid the "IN" statement. The first an update statement where you tag the records that are to be deleted in the msgrcpt table, using a join. And a second step in which you delete the tagged records.

Thanks,

Peter.

ZhangHuangbin wrote:

Hmm, still not working smoothly with this 'DELETE' command:

DELETE FROM msgrcpt WHERE mail_id IN (SELECT mail_id FROM msgs WHERE content IN ('U', 'M', 'H', 'O', 'C') AND time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)))

So sorry about this trouble, will try to improve it, thanks very much for your feedback.

==== Provide basic information to help troubleshoot ====
- iRedMail version:
- Linux/BSD distribution name and version:
- Any related log? Log is helpful for troubleshooting.
====

25

Re: login to iRedAdmin-Pro is too slow

Two suggestions:

ALTER TABLE `msgs` ADD INDEX `msgs_idx_content` (`content`);

and change the sql code:

delete msgrcpt.* FROM msgrcpt inner join msgs on msgrcpt.mail_id=msgs.mail_id WHERE msgs.content IN ('U', 'M', 'H', 'O', 'C') AND msgs.time_num < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))

On my machine, this took the delete query from minutes (I lost patience and killed it, so I don't know how long) to 0.25 seconds.