Hello,

> On Nov 27, 2016, at 8:36 AM, Gaurav Jain <monkeyfd...@gmail.com> wrote:
> 
> Hi,
> 
> * Could you please share documents of CalendarServer performance and 
> load/stress testing?
> * How much memcached helps with performance of CalendarServer?
> 
> 
> For eg. I found this. 55,000 seems quite low number.
> 
> Test Scenario: With a well tuned multi-server deployment of identically 
> configured caldav servers behind a load balancer, and a separate Postgres 
> server with a fast RAID 0, in a low-latency lab environment using simulated 
> iCal client load, it takes 5 or 6 caldav servers to saturate the postgres 
> server (which becomes i/o bound at a load of about 55,000 simulated users in 
> this test).

We don't really have anything published specifically about performance. The 
excerpt you reference above (from our MultiServerDeployment.rst 
<https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/MultiServerDeployment.rst>
 document) is kind of old, and beyond that, doesn't sufficiently explain the 
parameters of the test scenario. The amount of load generated by clients 
depends a great deal on specifically what kinds of requests those clients are 
issuing, and what the general workflow is. For example, 1000 people posting one 
'non-scheduled' event (which is our strange term for events with no attendees, 
although they do occur at a time) per day would present WAY less load than 100 
users posting one event with 10 attendees per day. Accordingly, any sort of 
performance / scalability talk must take the workload into account as the most 
important factor.

We have good tools for characterizing the workload of any CalendarServer, 
through analysis of access.log - check out contrib/tools/protocolanalysis.py 
<https://github.com/apple/ccs-calendarserver/blob/master/contrib/tools/protocolanalysis.py>
  This tool outputs a report summarizing the activity on your server, looking 
at the activity from a lot of different angles. The results might not make a 
lot of sense to you, but we could probably help you understand them and set 
expectations with respect to scalability.

We also have a pretty nice load simulator 
<https://github.com/apple/ccs-calendarserver/tree/master/contrib/performance/loadtest>,
 and it's actually documented - check out LoadSimulation.rst 
<https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/LoadSimulation.rst>
  The default profile it uses provides what we consider to be a good mix of 
request types for an 'average' server where people are taking advantage of most 
of the server's features. It's also configurable, with the goal of allowing you 
to create a load sim profile that closely approximates what you see in 
production. There are several example profiles in there to look at for 
reference.

memcached is rather important, and it becomes more important as general 
activity level rises. We tried to get rid of it not too long ago, and ended up 
bringing it back because stuff was too slow without it. The service is not 
designed to allow memcached to be optional.

Also I think I would challenge the characterization of 55,000 users as 'quite 
low', unless you mean "low for that amount of hardware, compared to other 
common services", in which case... well, yeah, kinda. It is hard to compare 
CalDAV to other common types of services like email because the data model is 
soooo much more complex, with tons of inter-dependcies.

Cheers,
-dre
_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to