Re: [SOGo] EAS huge memory consumption

2016-06-10 Thread Ludovic Marcotte

On 2016-06-10 5:57 AM, Cristian Mammoli (c.mamm...@apra.it) wrote:



EAS sogod processes will generally consume 16 to 50 MB of RSS. 


How comes then that 12 GB are not enough for 90 phones 


If you set to SxVMemLimit to 300, each sogod child process should be 
allowed to use about 55 MB of memory of its own before the process is 
restarted. Bursts can occur because the check only occurs after the 
request has been sent to the client. So if an EAS client syncs a 200 MB 
chunk of data, memory will grow a lot larger for that process during 
response preparation.


--
Ludovic Marcotte
lmarco...@inverse.ca  ::  +1.514.755.3630  ::  http://inverse.ca
Inverse inc. :: Leaders behind SOGo (http://sogo.nu), PacketFence 
(http://packetfence.org) and Fingerbank (http://fingerbank.org)

--
users@sogo.nu
https://inverse.ca/sogo/lists

Re: [SOGo] EAS huge memory consumption

2016-06-10 Thread Cristian Mammoli



and sogo.conf:

  /* ActiveSync */
  SOGoMaximumSyncResponseSize = 1024;
  SOGoMaximumPingInterval = 10;
  SOGoMaximumSyncInterval = 30;
  SOGoInternalSyncInterval = 60;
These settings are broken. Reread: 
https://sogo.nu/files/docs/SOGoInstallationGuide.html#_microsoft_enterprise_activesync_tuning


Not all our phones are using push, anyway I changed them this way:
  /* ActiveSync */
  SOGoMaximumSyncResponseSize = 1024;
  //SOGoMaximumPingInterval = 10;
  //SOGoMaximumSyncInterval = 30;
  //SOGoInternalSyncInterval = 60;
  SOGoMaximumPingInterval = 3540;
  SOGoMaximumSyncInterval = 3540;
  SOGoInternalSyncInterval = 60;
  WOWorkersCount = 100;

and

ProxyPass /Microsoft-Server-ActiveSync \
 http://srvsogo02.apra.it:2/SOGo/Microsoft-Server-ActiveSync \
 retry=60 connectiontimeout=5 timeout=3600

 in Apache


Is this expected behaviour? How many resources am I supposed to use 
to handle 90 phones? 
If you have 90 phones, you should have at least 90 sogod processes 
since an EAS connection using push will consume one process. You can 
even dedicate a sogod instance for EAS 
(https://sogo.nu/nc/support/faq/article/dedicated-separate-sogo-instance-for-activesync.html)


I'm already using a *dedicated server* for EAS


EAS sogod processes will generally consume 16 to 50 MB of RSS. 


How comes then that 12 GB are not enough for 90 phones
--
users@sogo.nu
https://inverse.ca/sogo/lists


Re: [SOGo] EAS huge memory consumption

2016-06-09 Thread "Kai-Uwe Rommel"

users-requ...@sogo.nu wrote on 09.06.2016 18:05:13:
>
> Is this expected behaviour? How many resources am I supposed to use to
> handle 90 phones?

This is really something that needs to be optimized. For comparison: an IBM 
Traveler server that
can handle that amount of users needs just 8 GB of RAM and runs fine with two 
cores
(and does much more other work, too).

Kai-Uwe Rommel

kai-uwe.rom...@ars.de
Telefon+Mobil +49 89 32468-120


ARS Eventtipp:
Sichern Sie sich Ihr kostenloses Early Bird-Ticket bei Anmeldung zur ARScon'16 
bis 10. Juli!




ARS Computer und Consulting GmbH, http://www.ars.de
Ridlerstrasse 37, 80339 Muenchen, Deutschland

ARS - The Art of Software Engineering
Software Engineering, Technologieberatung, IBM Software, IBM Lizenzmanagement 
Services

Handelsregister Muenchen, HRB 101829, USt-ID: DE 155 068 909
Geschaeftsfuehrer: Michael Arbesmeier, Kai-Uwe Rommel, Roland Schock, Joachim 
Gucker
-- 
users@sogo.nu
https://inverse.ca/sogo/lists

Re: [SOGo] EAS huge memory consumption

2016-06-09 Thread Ludovic Marcotte

On 2016-06-09 12:05 PM, Cristian Mammoli (c.mamm...@apra.it) wrote:


ProxyPass /Microsoft-Server-ActiveSync \
http://srvsogo02.apra.it:2/SOGo/Microsoft-Server-ActiveSync \
 retry=60 connectiontimeout=5 timeout=360

and sogo.conf:

  /* ActiveSync */
  SOGoMaximumSyncResponseSize = 1024;
  SOGoMaximumPingInterval = 10;
  SOGoMaximumSyncInterval = 30;
  SOGoInternalSyncInterval = 60;
These settings are broken. Reread: 
https://sogo.nu/files/docs/SOGoInstallationGuide.html#_microsoft_enterprise_activesync_tuning

  WOWorkersCount = 40;
  SxVMemLimit = 384;

From the tests I did I cannot set WOWorkersCount lower than 40 or I 
start getting lots of:


No child available to handle incoming request!

I cannot set lower than 384 either: I already have lots of:

terminating app, vMem size limit (384 MB) has been reached 
(currently 397 MB)
That is normal - as what is considered right now, is the VSZ value - 
which can be quite large, especially on 64-bit systems. I think we 
should rather consider the RSS value, which can be more easily tuned and 
understood.


The server has 4 cpus and 12 GB of RAM and after only 6-8 hours all 
the RAM is occupied and the server start swapping until the oom killer 
terminates all sogod processes.
I have another server with 4 GB of RAM that is handling 200 heavy 
Thunderbird clients just fine.


Is this expected behaviour? How many resources am I supposed to use to 
handle 90 phones? 
If you have 90 phones, you should have at least 90 sogod processes since 
an EAS connection using push will consume one process. You can even 
dedicate a sogod instance for EAS 
(https://sogo.nu/nc/support/faq/article/dedicated-separate-sogo-instance-for-activesync.html)


EAS sogod processes will generally consume 16 to 50 MB of RSS.

Thanks,

--
Ludovic Marcotte
lmarco...@inverse.ca  ::  +1.514.755.3630  ::  http://inverse.ca
Inverse inc. :: Leaders behind SOGo (http://sogo.nu), PacketFence 
(http://packetfence.org) and Fingerbank (http://fingerbank.org)

--
users@sogo.nu
https://inverse.ca/sogo/lists

[SOGo] EAS huge memory consumption

2016-06-09 Thread Cristian Mammoli
Hi, we have around 90 EAS clients (Android Phones) and a SOGo server 
dedicated to EAS only.


Most of the phones are not configured in Push (sync interval=15 min) but 
I cannot exclude that some user manually configured it in push


Apache is configured this way:

ProxyPass /Microsoft-Server-ActiveSync \
 http://srvsogo02.apra.it:2/SOGo/Microsoft-Server-ActiveSync \
 retry=60 connectiontimeout=5 timeout=360

and sogo.conf:

  /* ActiveSync */
  SOGoMaximumSyncResponseSize = 1024;
  SOGoMaximumPingInterval = 10;
  SOGoMaximumSyncInterval = 30;
  SOGoInternalSyncInterval = 60;
  WOWorkersCount = 40;
  SxVMemLimit = 384;

From the tests I did I cannot set WOWorkersCount lower than 40 or I 
start getting lots of:


No child available to handle incoming request!

I cannot set lower than 384 either: I already have lots of:

terminating app, vMem size limit (384 MB) has been reached 
(currently 397 MB)


[root@srvsogo02 ~]# grep -i "vMem size limit" /var/log/sogo/sogo.log  |wc -l
42621

The server has 4 cpus and 12 GB of RAM and after only 6-8 hours all the 
RAM is occupied and the server start swapping until the oom killer 
terminates all sogod processes.
I have another server with 4 GB of RAM that is handling 200 heavy 
Thunderbird clients just fine.


Is this expected behaviour? How many resources am I supposed to use to 
handle 90 phones?


Thanks

Cristian
--
users@sogo.nu
https://inverse.ca/sogo/lists