Thanks for your input. I'll try give my.cnf a try.

I'm not technical at all and am unable to describe the queries myself.
Attached some output from the server (Sorry for the long post):


SHOW STATUS
---------------------
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| Aborted_clients          | 106        |
| Aborted_connects         | 1          |
| Bytes_received           | 1386152010 |
| Bytes_sent               | 1017147314 |
| Com_alter_table          | 0          |
| Com_analyze              | 0          |
| Com_backup_table         | 0          |
| Com_change_db            | 404084     |
| Com_delete               | 954139     |
| Com_flush                | 0          |
| Com_insert               | 38972      |
| Com_insert_select        | 0          |
| Com_kill                 | 0          |
| Com_load                 | 0          |
| Com_select               | 5274720    |
| Com_set_option           | 0          |
| Com_show_binlog_events   | 0          |
| Com_show_binlogs         | 0          |
| Com_show_create          | 0          |
| Com_show_databases       | 4          |
| Com_show_fields          | 2          |
| Com_show_grants          | 0          |
| Com_show_keys            | 0          |
| Com_show_logs            | 0          |
| Com_show_master_status   | 0          |
| Com_show_new_master      | 0          |
| Com_show_open_tables     | 0          |
| Com_show_processlist     | 8          |
| Com_show_slave_hosts     | 0          |
| Com_show_slave_status    | 0          |
| Com_show_status          | 9          |
| Com_show_innodb_status   | 0          |
| Com_show_tables          | 56         |
| Com_show_variables       | 20         |
| Com_slave_start          | 0          |
| Com_slave_stop           | 0          |
| Com_truncate             | 0          |
| Com_unlock_tables        | 0          |
| Com_update               | 1412924    |
| Connections              | 403875     |
| Created_tmp_disk_tables  | 688        |
| Created_tmp_tables       | 105261     |
| Created_tmp_files        | 0          |
| Delayed_insert_threads   | 0          |
| Delayed_writes           | 0          |
| Delayed_errors           | 0          |
| Flush_commands           | 1          |
| Handler_commit           | 0          |
| Handler_delete           | 27226      |
| Handler_read_first       | 611592     |
| Handler_read_key         | 2133888023 |
| Handler_read_next        | 2198593130 |
| Handler_read_prev        | 278        |
| Handler_read_rnd         | 34278228   |
| Handler_read_rnd_next    | 249766468  |
| Handler_rollback         | 0          |
| Handler_update           | 1007151    |
| Handler_write            | 184271195  |
| Key_blocks_used          | 106432     |
| Key_read_requests        | 3936331483 |
| Key_reads                | 100865     |
| Key_write_requests       | 1897202    |
| Key_writes               | 1444468    |
| Max_used_connections     | 234        |
| Not_flushed_key_blocks   | 0          |
| Not_flushed_delayed_rows | 0          |
| Open_tables              | 1024       |
| Open_files               | 1055       |
| Open_streams             | 0          |
| Opened_tables            | 6601       |
| Questions                | 17691302   |
| Qcache_queries_in_cache  | 1564       |
| Qcache_inserts           | 5109816    |
| Qcache_hits              | 9173397    |
| Qcache_lowmem_prunes     | 89550      |
| Qcache_not_cached        | 183073     |
| Qcache_free_memory       | 4490312    |
| Qcache_free_blocks       | 1239       |
| Qcache_total_blocks      | 4393       |
| Rpl_status               | NULL       |
| Select_full_join         | 712        |
| Select_full_range_join   | 119        |
| Select_range             | 24655      |
| Select_range_check       | 0          |
| Select_scan              | 407032     |
| Slave_open_temp_tables   | 0          |
| Slave_running            | OFF        |
| Slow_launch_threads      | 0          |
| Slow_queries             | 2892       |
| Sort_merge_passes        | 0          |
| Sort_range               | 244321     |
| Sort_rows                | 2279797622 |
| Sort_scan                | 151217     |
| Table_locks_immediate    | 7551643    |
| Table_locks_waited       | 957623     |
| Threads_cached           | 220        |
| Threads_created          | 235        |
| Threads_connected        | 15         |
| Threads_running          | 7          |
| Uptime                   | 155131     |
+--------------------------+------------+
132 rows in set (0.00 sec)


Snapshot of MYTOP
--------------------------
MySQL on localhost (4.0.14-Max)
up 1+19:18:02 [12:20:47]
 Queries: 17.0M  qps:  114 Slow:    31.0         Se/In/Up/De(%):
00/00/00/00
             qps now:   87 Slow qps: 3.2  Threads:  129 ( 119/ 106)
75/01/09/07
 Cache Hits: 7.9k  Hits/s:  0.1 Hits now:  43.7  Ratio: 61.0% Ratio now:
66.7%
 Key Efficiency: 100.0%  Bps in/out:   8.4/ 60.1   Now in/out:  6.5k/54.1k

      Id      User         Host/IP         DB      Time    Cmd Query or
State
      --      ----         -------         --      ----    --- ----------
  408302      root       localhost baby_kingd         0  Query show full
processlist
  408582     xoops     192.168.0.1 baby_kingd         0  Sleep
  408636     xoops     192.168.0.1 baby_kingd         0  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408627     xoops     192.168.0.1 baby_kingd         1  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408635     xoops     192.168.0.1 baby_kingd         1  Query SELECT u.uid,
u.uname FROM xoops_users u, xoops_bb_forum_mods
  408637     xoops     192.168.0.1 baby_kingd         1  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408638     xoops     192.168.0.1 baby_kingd         1  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408639     xoops     192.168.0.1 baby_kingd         1  Query SELECT * FROM
xoops_users WHERE uid=3867
  408641     xoops     192.168.0.1 baby_kingd         1  Query SELECT u.uid,
u.uname FROM xoops_users u, xoops_bb_forum_mods
  408631     xoops     192.168.0.1 baby_kingd         2  Query SELECT * FROM
xoops_users WHERE uid=6104
  408632     xoops     192.168.0.1 baby_kingd         2  Query SELECT * FROM
xoops_users WHERE uid=555
  408634     xoops     192.168.0.1 baby_kingd         2  Query SELECT * FROM
xoops_users WHERE uid=15313
  408553     xoops     192.168.0.1 baby_kingd         3  Query INSERT INTO
xoops_bb_posts_text (post_id, post_text) VALUES (1
  408629     xoops     192.168.0.1 baby_kingd         3  Query SELECT * FROM
xoops_users WHERE uid=393
  408630     xoops     192.168.0.1 baby_kingd         3  Query SELECT t.*,
u.uname, u2.uname as last_poster, p.post_time as l
  408625     xoops     192.168.0.1 baby_kingd         4  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408626     xoops     192.168.0.1 baby_kingd         4  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408628     xoops     192.168.0.1 baby_kingd         4  Query SELECT * FROM
xoops_users WHERE uid=645
  408620     xoops     192.168.0.1 baby_kingd         5  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408621     xoops     192.168.0.1 baby_kingd         5  Query SELECT * FROM
xoops_users WHERE uid=12308
  408624     xoops     192.168.0.1 baby_kingd         5  Query SELECT * FROM
xoops_users WHERE uid=12013
  408615     xoops     192.168.0.1 baby_kingd         6  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408616     xoops     192.168.0.1 baby_kingd         6  Query SELECT t.*,
u.uname, u2.uname as last_poster, p.post_time as l
  408617     xoops     192.168.0.1 baby_kingd         6  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408618     xoops     192.168.0.1 baby_kingd         6  Query SELECT u.uid,
u.uname FROM xoops_users u, xoops_bb_forum_mods
  408619     xoops     192.168.0.1 baby_kingd         6  Query SELECT * FROM
xoops_users WHERE uid=4896
  408597     xoops     192.168.0.1 baby_kingd         7  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408611     xoops     192.168.0.1 baby_kingd         7  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408614     xoops     192.168.0.1 baby_kingd         7  Query SELECT * FROM
xoops_users WHERE uid=81
  408509     xoops     192.168.0.1 baby_kingd         8  Query INSERT INTO
xoops_bb_posts_text (post_id, post_text) VALUES (1
  408601     xoops     192.168.0.1 baby_kingd         8  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408609     xoops     192.168.0.1 baby_kingd         8  Query SELECT * FROM
xoops_users WHERE uid=5876
  408610     xoops     192.168.0.1 baby_kingd         8  Query SELECT * FROM
xoops_users WHERE uid=382
  408526     xoops     192.168.0.1 baby_kingd         9  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408572     xoops     192.168.0.1 baby_kingd         9  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408585     xoops     192.168.0.1 baby_kingd         9  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408606     xoops     192.168.0.1 baby_kingd         9  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408607     xoops     192.168.0.1 baby_kingd         9  Query SELECT * FROM
xoops_users WHERE uid=367
  408608     xoops     192.168.0.1 baby_kingd         9  Query SELECT * FROM
xoops_users WHERE uid=2388
  408470     xoops     192.168.0.1 baby_kingd        10  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408491     xoops     192.168.0.1 baby_kingd        10  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408510     xoops     192.168.0.1 baby_kingd        10  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408517     xoops     192.168.0.1 baby_kingd        10  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408519     xoops     192.168.0.1 baby_kingd        10  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408581     xoops     192.168.0.1 baby_kingd        10  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408604     xoops     192.168.0.1 baby_kingd        10  Query SELECT uname
FROM xoops_users WHERE uid = 793
  408605     xoops     192.168.0.1 baby_kingd        10  Query SELECT * FROM
xoops_users WHERE uid=3089
  408490     xoops     192.168.0.1 baby_kingd        11  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408492     xoops     192.168.0.1 baby_kingd        11  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408497     xoops     192.168.0.1 baby_kingd        11  Query SELECT p.*,
t.post_text FROM xoops_bb_posts p, xoops_bb_posts_
  408592     xoops     192.168.0.1 baby_kingd        11  Query SELECT t.*,
u.uname, u2.uname as last_poster, p.post_time as l
  408599     xoops     192.168.0.1 baby_kingd        11  Query SELECT t.*,
u.uname, u2.uname as last_poster, p.post_time as l
  408600     xoops     192.168.0.1 baby_kingd        11  Query SELECT t.*,
u.uname, u2.uname as last_poster, p.post_time as l
  408602     xoops     192.168.0.1 baby_kingd        11  Query SELECT * FROM
xoops_users WHERE uid=3819


TOP
------
12:10:01  up 2 days,  8:52,  1 user,  load average: 4.15, 6.79, 7.02
40 processes: 38 sleeping, 2 running, 0 zombie, 0 stopped
CPU0 states:  67.2% user  25.4% system    0.0% nice   0.0% iowait   6.4%
idle
CPU1 states:  10.0% user   7.3% system    0.0% nice   0.0% iowait  82.2%
idle
Mem:  2064500k av, 1130168k used,  934332k free,       0k shrd,   62876k
buff
                    933640k actv,   49892k in_d,   26704k in_c
Swap: 2040244k av,      36k used, 2040208k free                  684320k
cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
 3138 mysql     15   0  264M 264M  2232 S    99.9 13.0  1792m   0 mysqld-max

SAR
------
07:00:00 HK       all      0.66      0.00      0.47     98.87
07:10:00 HK       all      5.04      0.00      1.89     93.06
07:20:00 HK       all      4.85      0.00      2.23     92.92
07:30:00 HK       all      2.25      0.00      1.15     96.60
07:40:00 HK       all      2.88      0.00      1.34     95.78
07:50:00 HK       all      2.00      0.00      1.12     96.88
08:00:00 HK       all      4.09      0.00      1.86     94.05
08:10:00 HK       all      4.90      0.00      2.38     92.72
08:20:00 HK       all      3.40      0.00      1.73     94.88
08:30:00 HK       all      2.65      0.00      1.42     95.92
08:40:00 HK       all      4.25      0.00      1.98     93.77
08:50:00 HK       all      5.92      0.00      2.74     91.34
09:00:00 HK       all      7.57      0.00      3.36     89.07
09:10:00 HK       all     12.44      0.00      5.50     82.06
09:20:00 HK       all     32.86      0.00     14.31     52.84
09:30:00 HK       all     24.03      0.00      9.57     66.40
09:40:00 HK       all     31.26      0.00     13.83     54.91
09:50:00 HK       all     43.56      0.00     21.61     34.83
10:00:03 HK       all     42.48      0.00     19.74     37.78
10:10:00 HK       all     38.89      0.00     19.31     41.80

10:10:00 HK       CPU     %user     %nice   %system     %idle
10:20:00 HK       all     42.50      0.00     20.21     37.29
10:30:00 HK       all     35.91      0.00     16.64     47.45
10:40:00 HK       all     46.26      0.00     22.03     31.72
10:50:00 HK       all     43.28      0.00     19.37     37.35
11:00:00 HK       all     35.22      0.00     16.42     48.36
11:10:00 HK       all     33.16      0.00     15.55     51.29
11:20:00 HK       all     36.43      0.00     16.64     46.93
11:30:00 HK       all     35.75      0.00     16.84     47.41
11:40:00 HK       all     39.29      0.00     18.52     42.20
11:50:00 HK       all     38.25      0.00     19.21     42.54
12:00:01 HK       all     57.51      0.00     28.40     14.09
12:10:00 HK       all     50.69      0.00     26.55     22.76
Average:          all     15.37      0.00      7.33     77.30


----- Original Message ----- 
From: "David Griffiths" <[EMAIL PROTECTED]>
To: "Rainer Sip" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Wednesday, October 22, 2003 3:11 AM
Subject: Re: Mysql Performance Question


> You need to figure out what's slowing down your application. It could be
> expensive queries which in turn could be caused by missing indexes. It
could
> be that the machine is too slow or the configuration of MySQL is
> sub-optimal.
>
> In this case, the machine looks fine.
>
> I can't comment on queries or indexes.
>
> Your tuning, I can.
>
> set-variable    = key_buffer=512M
>
> This one is important; it caches data from the database in memory. How big
> is your database? Is it bigger than 512 meg? If so, is there free memory
on
> the machine? If so, I'd recommend bumping it up as much as you can; it's
> faster to get data from memory than it is from disk.
>
>
> set-variable    = sort_buffer=16M
>
> This is used to sort the results of queries; it's per-connection. I
believe
> it is allocated on an as-needed basis. Regardless, are you doing a lot of
> ORDER BY/GROUP BY in your queries? This might be a little high.
>
>
> set-variable    = table_cache=1024
>
> How many tables do you have? This tells the database how many tables to
keep
> open. It probably won't make much of a difference lowering it.
>
>
> set-variable    = join_buffer=8M
>
> This one is used to join tables where no indexes exist. In otherwords, if
> you're using indexes, it won't be used.
>
>
> set-variable    = record_buffer=8M
>
> This is used for reading in rows after a sort (from the sort_buffer).
Again,
> per client. Do you need it?
>
>
> set-variable    = query_cache_size=6M
>
> This one can be a waste of memory, or a huge bonus. Queries and their
result
> sets are stored here. If you need to run the same query a second time, the
> database just pulls the results from the cache.
>
> There are a few issues, tho.
>
> If you have a query,
>
> "SELECT * FROM table_1 WHERE condition_1 = 12"
>
> then the result of the query will be stored. But if the next statement is,
> "UPDATE TABLE table_1..." then the data in the cache relating to table_1
> have to be unloaded, as the UPDATE statement could have invalidated all of
> it.
>
> But, if you have some stock queries that constantly read data from tables
> that, in the business logic of your application, are read-only (ie you
> rarely, if ever, update the data in them), then the query cache can be a
big
> bonus.
>
> Another interesting note is the query_cache_type variable. You can set it
to
> 2 in the my.cnf file; this means that in your select statements, you add a
> hint to tell the database to cache or not cache the results of the query.
So
> if you know a query and it's results are very dynamic, then it's not much
> use to use the query cache and you can tell the database to not put it in
> the query cache. The SELECT statement would look like, 'SELECT SQL_CACHE *
> FROM table_1 WHERE...'. Here's the page:
> http://www.mysql.com/doc/en/Query_Cache.html
>
>
>
> Next, moving to InnoDB. I found that, properly tuned, InnoDB is almost as
> fast as MyISAM. You'll want to set the innodb_buffer_pool_size as large as
> possible (it's the MyISAM key_buffer) to cache as much data.
>
> You'll need to set up a tablespace; you can put them all over your disks.
> Finally, play with innodb_flush_method. I set it to O_DSYNC and got a
> substantial increase in performance. Search the MySQL list-archives for
> discussions on the options, or check out http://www.innodb.com
>
>
> Hope that helps,
> David
>
>
>
> ----- Original Message -----
> From: "Rainer Sip" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, October 21, 2003 9:48 AM
> Subject: Mysql Performance Question
>
>
> I'm running a community site (Xoops) on Mysql 4.0.14.
>
> I found that the speed of my site is slow during peak hours, when there
> are 450 concurrent uers hanging on the site. Mytop showed that the
> queries per second maxed at 500. I believe this could be higher,
> provided that I have it running on a dedicated machine. I also noticed
> the load average is very high (12+ during peak hours)
>
> In the mid run I'm planning to mirgrate to innodb for higher concurrency
> (I'm currently using myisam). However, I'm seeking suggestions in fine
> tuning the parameters.
>
> The machine is a Dell PowerEdge 4400 with 2 Xeon 1G processors and 2GB
> of memory. There are 4 disks running raid 0+1. Attached the my.cnf for
> your easy review. Thanks a lot in advance.
>
> Cheers,
> Rainer
>
>
> [client]
> socket=/var/lib/mysql/mysql.sock
>
> [client]
> socket=/var/lib/mysql/mysql.sock
>
> [mysqld]
> datadir=/var/lib/mysql
> socket=/var/lib/mysql/mysql.sock
> skip-locking
> set-variable    = key_buffer=512M
> set-variable    = max_allowed_packet=1M
> set-variable    = table_cache=1024
> set-variable    = sort_buffer=16M
> set-variable    = join_buffer=8M
> set-variable    = record_buffer=8M
> set-variable    = thread_cache=512
> set-variable    = max_connections=500
> set-variable    = tmp_table_size=128M
> set-variable    = thread_concurrency=4
> set-variable    = myisam_sort_buffer_size=512M
> set-variable    = query_cache_size=6M
> #set-variable   = max_connect_errors=1000
> #set-variable   = back_log=100
> #log-bin
> skip-innodb
>
> [mysql.server]
> user=mysql
> basedir=/var/lib
>
> [safe_mysqld]
> err-log=/var/log/mysqld.log
> pid-file=/var/run/mysqld/mysqld.pid
>
> [mysqldump]
> quick
> set-variable    = max_allowed_packet=16M
>
> [mysql]
> no-auto-rehash
> # Remove the next comment character if you are not familiar with SQL
> #safe-updates
>
> [isamchk]
> set-variable    = key_buffer=256M
> set-variable    = sort_buffer=124M
> set-variable    = read_buffer=2M
> set-variable    = write_buffer=2M
>
> [myisamchk]
> set-variable    = key_buffer=256M
> set-variable    = sort_buffer=256M
> set-variable    = read_buffer=8M
> set-variable    = write_buffer=4M
>
> [mysqlhotcopy]
> interactive-timeout
>
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to