This is not a roundcube specific method, but if you can manage a postgresql restart, you can enable query logging [with duration].
postgresql.conf: log_statement = 'all' log_duration = on
Look here for more logging info: http://www.postgresql.org/docs/current/static/runtime-config-logging.html
This assumes you already have log_destination, log_directory, and log_filename setup.
Begin tailing the log, then login to RC and see what happens. There may be a flood of statements so feel free to copy the log somewhere where you can browse it with an editor or grep/awk. With the duration turned on, you can search/grep for long running queries. When you find one, copy/paste that into the psql command line and execute it. Prefix the query with "explain" to show the query plan. Perhaps it is not using an index as it should, perhaps the index doesn't exist. (Execute \d tablename to describe the table which will show indexes.) Auto-vacuum should be running by default on most modern postgres installs, but perhaps you need to run a "vacuum analyze verbose" (to ensure the query planner choses the indexes) or a "vacuum full" on your RC database.
Finally, check for message caching. Perhaps you had it off in 0.2 and turned on in 0.3?
Good luck.
-gnul
On Wed, Aug 26, 2009 at 2:32 PM, Gavin McCullaghgavin.mccullagh@gcd.ie wrote:
Hi,
On Wed, 26 Aug 2009, Gavin McCullagh wrote:
It's possible that our manual upgrade has missed an index somewhere and as a result postgresql is having to work unduly hard. Does anyone have any suggestions for what I might do to work out what the hold up is?
We still have an old 0.2-beta running alongside and the 100 email pages take 2-4 seconds with it, so it seems like there must be an index missing or something. Any suggestions what it might be?
Gavin
List info: http://lists.roundcube.net/users/
List info: http://lists.roundcube.net/users/