Thursday 15 September 2005 3:05:57 am
Good day :) I'm running a 3.6.0 site on a Xeon 2.40GHz with 1GB RAM. When few users are using the site it runs ok, but at times the whole system hangs, with load averages usually from 20 to 40 (but at times up to 170(!)), especially with many users online. I've studied the process list during the 'hang periods', and what's strange is that although the load average is high, there's almost no CPU usage. There's also much swap memory available. Several httpd and mysql-processes go into uninteruptable sleep. My site is a community based one, with users being able to send messages to each other, post in forum etc - In other words, there are much content creation going on, escpecially in the 'hang periods'. This leads me to a theory: The reason the server hangs, is that mysql locks the ezcontentobject_attribute table when inserting new rows (messages, forum posts etc). This makes the other threads unable to read from the table, and thus they go into an uninteruptable sleep, awaiting access to the table. When this happens to enough threads, the server hangs. The reason I'm posting this here, is that I'm in no way experienced with mysql. So, I'm hoping for some enlightning answers to the following questions: 1. Is the theory plausable? Does mysql acutally lock tables when writing to them, and will this prevent other threads from accessing the table? 2. We're thinking about buying a dedicated sql-server, and thus hopefully reducing the load on each of the servers. Does anyone have experience running eZ on multpiple servers? How is it working out for you? And could this contribute to solving/reducing our problem? 3. Could switching to Postgresql be a sollution? Is PSQL faster/better in regards to writing/reading/table locking? Any answer appriciated.. :)
|