Hello list,

We are a ISP and happy Poundusers! But on one system we experience some 
problems. For this system Pound is configured to use cookies for session 
tracking. It is installed on a PF-Sense firewall (FreeBSD) which isn't a very 
powerful device (Celeron M. 1Ghz 512Mb). We notice that the website seems to 
stall every minute for 10 seconds. After looking through the Pound code I 
notice the do_expire function, which is called every 60 seconds. It runs over 
all sessions in the hash and checks if they are expired. If so, deletes them. 
This takes almost 10 seconds and since the hashtable is locked no lookups and 
inserts are permitted. There are ~3000 sessions in the table and Pound is 
handling ~100 hits/s.
Obviously this is a locking problem. The first thing that comes to mind is: 
drop the non-threadsafe hashtable. But since this structure is a big part of 
the code this is not a fast-to-implement solution. Maybe we can sharpen up the 
lock-policy. Instead of locking the complete table during the t_expire, maybe 
only lock it when actually deleting a node (in t_old). I studied the code but 
I'm not sure if it is a (thread)safe solution. What do you think?
I wonder, are we the only one experiencing these troubles? Is this a known 
problem?

Kind regards,

Steven van der Vegt
Echelon B.V. The Netherlands

--
To unsubscribe send an email with subject unsubscribe to [email protected].
Please contact [email protected] for questions.

Reply via email to