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.
