31 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| If you have a lot of groups or very large groups, cyrus-imapd login can become
 | |
| quite slow due to the way cyrus-imapd handles groups. This may become worse
 | |
| when using nss_ldap or other slow nss backends to resolve groups.
 | |
| Caching using nscd can increase speed dramatically but unfortunately not for
 | |
| all functions cyrus-imapd uses. nscd helps speeding up getgrnam() calls but not
 | |
| getgrent() calls, which are used by cyrus-imapd to get a complete list of all
 | |
| groups available.
 | |
| The groupfile patch implements a quick fix to the problem by using a separate
 | |
| group.cache file to speed up those operations using getgrent() calls.
 | |
| Calls to getgrnam() are not touched which means that the group.cache
 | |
| file must be kept in sync with the group source you are using with nss
 | |
| configured in /etc/nsswitch.conf. If group.cache doesn't exist,
 | |
| the patch has no effect and cyrus-imapd handles groups through getgrent().
 | |
| 
 | |
| Quick HOWTO:
 | |
| - configure group lookup in /etc/nsswitch.conf if not already done
 | |
| - configure name service cache in /etc/nscd.conf               (not mandatory)
 | |
| - start nscd with "service nscd start"                         (not mandatory)
 | |
| - configure a service which periodically updates the group.cache file using the
 | |
|   upd_groupcache script. Either set up a cronjob or use a event in the cyrus
 | |
|   configuration.
 | |
| 
 | |
| Sample /etc/cyrus.conf event to update the group cache every 10 minutes:
 | |
| EVENTS {
 | |
|   # some events removed here ***
 | |
|   ...........................***
 | |
| 
 | |
|   # this is only necessary if using group cache feature
 | |
|   groupcache    cmd="upd_groupcache" period=10
 | |
| }
 |