Hi, I have (what I thought) was a fairly small mysql setup. It's backing a vpopmail installation, and basically just handling alot of SELECTs.
In the process of delivering mail, the db gets hit a few times: -initial check that the user exists during smtp conversation -lookup for homedir during delivery -optional lookup again if doing spam filtering Additionally, everytime someone authenticates via smtp-auth, pop or imap, there's a SELECT to grab the password. So I haven't really done much to optimize things, as this seems like a fairly light load. I'm running 4.0.20 on FreeBSD 4.8 (port build w/Linux Threads). However, I'm starting to have problems. The various vpopmail programs that perform all these lookups are timing out, which leads to login failures (and worse). I see a number of simple things like "PINGs" from a local cronjob that graphs queries/sec timing out. Server load can swing from .30 during a calm period to brief spikes of 10.0-15.0 (generally during a spam run). I'm not sure what exactly to look at. I've bumped my max connections up to 1000, and based my my.cnf on the "my-large.cnf" file and I'm still seeing plenty of slow queries. I'm not swapping to disk at all, I'm not really taxing the CPU, and iostat shows that the raid array isn't struggling. It's been at least 4 years since I had to get very in-depth with MySQL, and it seems plenty has changed (for the better). If anyone can give me a push in the right direction, it would be much appreciated. Thanks, Charles Here's some stats, perhaps this will make more sense to someone. I know the "Aborted_clients" is high because vpopmail doesn't bother with "mysql_close()". The "Aborted_connects" increment when the problems start. The db server is local to the mail server, so there's no network issues here. mysql> show status; +--------------------------------+------------+ | Variable_name | Value | +--------------------------------+------------+ | Aborted_clients | 15450 | | Aborted_connects | 780 | | Bytes_received | 8502062 | | Bytes_sent | 18432035 | | Com_admin_commands | 8736 | | Com_alter_table | 0 | | Com_analyze | 0 | | Com_backup_table | 0 | | Com_begin | 0 | | Com_change_db | 3181 | | Com_change_master | 0 | | Com_check | 0 | | Com_commit | 0 | | Com_create_db | 454 | | Com_create_function | 0 | | Com_create_index | 0 | | Com_create_table | 1 | | Com_delete | 3 | | Com_delete_multi | 0 | | Com_drop_db | 0 | | Com_drop_function | 0 | | Com_drop_index | 0 | | Com_drop_table | 1 | | Com_flush | 0 | | Com_grant | 0 | | Com_ha_close | 0 | | Com_ha_open | 0 | | Com_ha_read | 0 | | Com_insert | 20 | | Com_insert_select | 0 | | Com_kill | 0 | | Com_load | 0 | | Com_load_master_data | 0 | | Com_load_master_table | 0 | | Com_lock_tables | 0 | | Com_optimize | 0 | | Com_purge | 0 | | Com_rename_table | 0 | | Com_repair | 0 | | Com_replace | 7495 | | Com_replace_select | 0 | | Com_reset | 0 | | Com_restore_table | 0 | | Com_revoke | 0 | | Com_rollback | 0 | | Com_savepoint | 0 | | Com_select | 13646 | | Com_set_option | 1 | | Com_show_binlog_events | 0 | | Com_show_binlogs | 0 | | Com_show_create | 0 | | Com_show_databases | 5 | | Com_show_fields | 20 | | 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 | 0 | | Com_show_slave_hosts | 4 | | Com_show_slave_status | 0 | | Com_show_status | 22 | | Com_show_innodb_status | 0 | | Com_show_tables | 4 | | Com_show_variables | 2 | | Com_slave_start | 0 | | Com_slave_stop | 0 | | Com_truncate | 0 | | Com_unlock_tables | 0 | | Com_update | 6190 | | Connections | 16602 | | Created_tmp_disk_tables | 0 | | Created_tmp_tables | 0 | | Created_tmp_files | 0 | | Delayed_insert_threads | 0 | | Delayed_writes | 0 | | Delayed_errors | 0 | | Flush_commands | 1 | | Handler_commit | 0 | | Handler_delete | 246 | | Handler_read_first | 2 | | Handler_read_key | 12335 | | Handler_read_next | 20600 | | Handler_read_prev | 0 | | Handler_read_rnd | 7458 | | Handler_read_rnd_next | 4204106 | | Handler_rollback | 0 | | Handler_update | 7416 | | Handler_write | 7513 | | Key_blocks_used | 388 | | Key_read_requests | 63965 | | Key_reads | 386 | | Key_write_requests | 437 | | Key_writes | 213 | | Max_used_connections | 139 | | Not_flushed_key_blocks | 0 | | Not_flushed_delayed_rows | 0 | | Open_tables | 29 | | Open_files | 49 | | Open_streams | 0 | | Opened_tables | 36 | | Questions | 62362 | | Qcache_queries_in_cache | 5551 | | Qcache_inserts | 5993 | | Qcache_hits | 23284 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 7599 | | Qcache_free_memory | 10942944 | | Qcache_free_blocks | 45 | | Qcache_total_blocks | 11153 | | Rpl_status | NULL | | Select_full_join | 0 | | Select_full_range_join | 0 | | Select_range | 97 | | Select_range_check | 0 | | Select_scan | 7643 | | Slave_open_temp_tables | 0 | | Slave_running | OFF | | Slow_launch_threads | 190 | | Slow_queries | 149 | | Sort_merge_passes | 0 | | Sort_range | 8 | | Sort_rows | 42 | | Sort_scan | 0 | | Ssl_accepts | 0 | | Ssl_finished_accepts | 0 | | Ssl_finished_connects | 0 | | Ssl_accept_renegotiates | 0 | | Ssl_connect_renegotiates | 0 | | Ssl_callback_cache_hits | 0 | | Ssl_session_cache_hits | 0 | | Ssl_session_cache_misses | 0 | | Ssl_session_cache_timeouts | 0 | | Ssl_used_session_cache_entries | 0 | | Ssl_client_connects | 0 | | Ssl_session_cache_overflows | 0 | | Ssl_session_cache_size | 128 | | Ssl_session_cache_mode | SERVER | | Ssl_sessions_reused | 0 | | Ssl_ctx_verify_mode | 5 | | Ssl_ctx_verify_depth | 4294967295 | | Ssl_verify_mode | 0 | | Ssl_verify_depth | 0 | | Ssl_version | | | Ssl_cipher | | | Ssl_cipher_list | | | Ssl_default_timeout | 0 | | Table_locks_immediate | 27215 | | Table_locks_waited | 89 | | Threads_cached | 6 | | Threads_created | 2017 | | Threads_connected | 57 | | Threads_running | 5 | | Uptime | 5027 | +--------------------------------+------------+ 155 rows in set (0.01 sec) mysql> show variables\G *************************** 1. row *************************** Variable_name: back_log Value: 50 *************************** 2. row *************************** Variable_name: basedir Value: /usr/local/ *************************** 3. row *************************** Variable_name: bdb_cache_size Value: 8388600 *************************** 4. row *************************** Variable_name: bdb_log_buffer_size Value: 131072 *************************** 5. row *************************** Variable_name: bdb_home Value: /var/db/mysql/ *************************** 6. row *************************** Variable_name: bdb_max_lock Value: 10000 *************************** 7. row *************************** Variable_name: bdb_logdir Value: *************************** 8. row *************************** Variable_name: bdb_shared_data Value: OFF *************************** 9. row *************************** Variable_name: bdb_tmpdir Value: /var/tmp/ *************************** 10. row *************************** Variable_name: bdb_version Value: Sleepycat Software: Berkeley DB 3.2.9a: (May 14, 2004) *************************** 11. row *************************** Variable_name: binlog_cache_size Value: 32768 *************************** 12. row *************************** Variable_name: bulk_insert_buffer_size Value: 8388608 *************************** 13. row *************************** Variable_name: character_set Value: latin1 *************************** 14. row *************************** Variable_name: character_sets Value: latin1 dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 *************************** 15. row *************************** Variable_name: concurrent_insert Value: ON *************************** 16. row *************************** Variable_name: connect_timeout Value: 5 *************************** 17. row *************************** Variable_name: convert_character_set Value: *************************** 18. row *************************** Variable_name: datadir Value: /var/db/mysql/ *************************** 19. row *************************** Variable_name: default_week_format Value: 0 *************************** 20. row *************************** Variable_name: delay_key_write Value: ON *************************** 21. row *************************** Variable_name: delayed_insert_limit Value: 100 *************************** 22. row *************************** Variable_name: delayed_insert_timeout Value: 300 *************************** 23. row *************************** Variable_name: delayed_queue_size Value: 1000 *************************** 24. row *************************** Variable_name: flush Value: OFF *************************** 25. row *************************** Variable_name: flush_time Value: 0 *************************** 26. row *************************** Variable_name: ft_boolean_syntax Value: + -><()~*:""&| *************************** 27. row *************************** Variable_name: ft_min_word_len Value: 4 *************************** 28. row *************************** Variable_name: ft_max_word_len Value: 254 *************************** 29. row *************************** Variable_name: ft_max_word_len_for_sort Value: 20 *************************** 30. row *************************** Variable_name: ft_stopword_file Value: (built-in) *************************** 31. row *************************** Variable_name: have_bdb Value: YES *************************** 32. row *************************** Variable_name: have_crypt Value: YES *************************** 33. row *************************** Variable_name: have_innodb Value: YES *************************** 34. row *************************** Variable_name: have_isam Value: YES *************************** 35. row *************************** Variable_name: have_raid Value: NO *************************** 36. row *************************** Variable_name: have_symlink Value: NO *************************** 37. row *************************** Variable_name: have_openssl Value: YES *************************** 38. row *************************** Variable_name: have_query_cache Value: YES *************************** 39. row *************************** Variable_name: init_file Value: *************************** 40. row *************************** Variable_name: innodb_additional_mem_pool_size Value: 1048576 *************************** 41. row *************************** Variable_name: innodb_buffer_pool_size Value: 8388608 *************************** 42. row *************************** Variable_name: innodb_data_file_path Value: ibdata1:10M:autoextend *************************** 43. row *************************** Variable_name: innodb_data_home_dir Value: *************************** 44. row *************************** Variable_name: innodb_file_io_threads Value: 4 *************************** 45. row *************************** Variable_name: innodb_force_recovery Value: 0 *************************** 46. row *************************** Variable_name: innodb_thread_concurrency Value: 8 *************************** 47. row *************************** Variable_name: innodb_flush_log_at_trx_commit Value: 1 *************************** 48. row *************************** Variable_name: innodb_fast_shutdown Value: ON *************************** 49. row *************************** Variable_name: innodb_flush_method Value: *************************** 50. row *************************** Variable_name: innodb_lock_wait_timeout Value: 50 *************************** 51. row *************************** Variable_name: innodb_log_arch_dir Value: ./ *************************** 52. row *************************** Variable_name: innodb_log_archive Value: OFF *************************** 53. row *************************** Variable_name: innodb_log_buffer_size Value: 1048576 *************************** 54. row *************************** Variable_name: innodb_log_file_size Value: 5242880 *************************** 55. row *************************** Variable_name: innodb_log_files_in_group Value: 2 *************************** 56. row *************************** Variable_name: innodb_log_group_home_dir Value: ./ *************************** 57. row *************************** Variable_name: innodb_mirrored_log_groups Value: 1 *************************** 58. row *************************** Variable_name: innodb_max_dirty_pages_pct Value: 90 *************************** 59. row *************************** Variable_name: interactive_timeout Value: 28800 *************************** 60. row *************************** Variable_name: join_buffer_size Value: 131072 *************************** 61. row *************************** Variable_name: key_buffer_size Value: 268435456 *************************** 62. row *************************** Variable_name: language Value: /usr/local/share/mysql/english/ *************************** 63. row *************************** Variable_name: large_files_support Value: ON *************************** 64. row *************************** Variable_name: license Value: GPL *************************** 65. row *************************** Variable_name: local_infile Value: ON *************************** 66. row *************************** Variable_name: log Value: OFF *************************** 67. row *************************** Variable_name: log_update Value: OFF *************************** 68. row *************************** Variable_name: log_bin Value: ON *************************** 69. row *************************** Variable_name: log_slave_updates Value: OFF *************************** 70. row *************************** Variable_name: log_slow_queries Value: ON *************************** 71. row *************************** Variable_name: log_warnings Value: ON *************************** 72. row *************************** Variable_name: long_query_time Value: 10 *************************** 73. row *************************** Variable_name: low_priority_updates Value: OFF *************************** 74. row *************************** Variable_name: lower_case_file_system Value: OFF *************************** 75. row *************************** Variable_name: lower_case_table_names Value: 0 *************************** 76. row *************************** Variable_name: max_allowed_packet Value: 1047552 *************************** 77. row *************************** Variable_name: max_binlog_cache_size Value: 4294967295 *************************** 78. row *************************** Variable_name: max_binlog_size Value: 104857600 *************************** 79. row *************************** Variable_name: max_connections Value: 2000 *************************** 80. row *************************** Variable_name: max_connect_errors Value: 10 *************************** 81. row *************************** Variable_name: max_delayed_threads Value: 20 *************************** 82. row *************************** Variable_name: max_insert_delayed_threads Value: 20 *************************** 83. row *************************** Variable_name: max_heap_table_size Value: 16777216 *************************** 84. row *************************** Variable_name: max_join_size Value: 4294967295 *************************** 85. row *************************** Variable_name: max_relay_log_size Value: 0 *************************** 86. row *************************** Variable_name: max_seeks_for_key Value: 4294967295 *************************** 87. row *************************** Variable_name: max_sort_length Value: 1024 *************************** 88. row *************************** Variable_name: max_user_connections Value: 0 *************************** 89. row *************************** Variable_name: max_tmp_tables Value: 32 *************************** 90. row *************************** Variable_name: max_write_lock_count Value: 4294967295 *************************** 91. row *************************** Variable_name: myisam_max_extra_sort_file_size Value: 268435456 *************************** 92. row *************************** Variable_name: myisam_max_sort_file_size Value: 2147483647 *************************** 93. row *************************** Variable_name: myisam_repair_threads Value: 1 *************************** 94. row *************************** Variable_name: myisam_recover_options Value: OFF *************************** 95. row *************************** Variable_name: myisam_sort_buffer_size Value: 67108864 *************************** 96. row *************************** Variable_name: net_buffer_length Value: 1048576 *************************** 97. row *************************** Variable_name: net_read_timeout Value: 30 *************************** 98. row *************************** Variable_name: net_retry_count Value: 1000000 *************************** 99. row *************************** Variable_name: net_write_timeout Value: 60 *************************** 100. row *************************** Variable_name: new Value: OFF *************************** 101. row *************************** Variable_name: open_files_limit Value: 11095 *************************** 102. row *************************** Variable_name: pid_file Value: /var/db/mysql/xena.pid *************************** 103. row *************************** Variable_name: log_error Value: *************************** 104. row *************************** Variable_name: port Value: 3306 *************************** 105. row *************************** Variable_name: protocol_version Value: 10 *************************** 106. row *************************** Variable_name: query_alloc_block_size Value: 8192 *************************** 107. row *************************** Variable_name: query_cache_limit Value: 1048576 *************************** 108. row *************************** Variable_name: query_cache_size Value: 16777216 *************************** 109. row *************************** Variable_name: query_cache_type Value: ON *************************** 110. row *************************** Variable_name: query_prealloc_size Value: 8192 *************************** 111. row *************************** Variable_name: range_alloc_block_size Value: 2048 *************************** 112. row *************************** Variable_name: read_buffer_size Value: 131072 *************************** 113. row *************************** Variable_name: read_only Value: OFF *************************** 114. row *************************** Variable_name: read_rnd_buffer_size Value: 262144 *************************** 115. row *************************** Variable_name: rpl_recovery_rank Value: 0 *************************** 116. row *************************** Variable_name: server_id Value: 10 *************************** 117. row *************************** Variable_name: slave_net_timeout Value: 3600 *************************** 118. row *************************** Variable_name: skip_external_locking Value: ON *************************** 119. row *************************** Variable_name: skip_networking Value: OFF *************************** 120. row *************************** Variable_name: skip_show_database Value: OFF *************************** 121. row *************************** Variable_name: slow_launch_time Value: 2 *************************** 122. row *************************** Variable_name: socket Value: /tmp/mysql.sock *************************** 123. row *************************** Variable_name: sort_buffer_size Value: 1048568 *************************** 124. row *************************** Variable_name: sql_mode Value: 0 *************************** 125. row *************************** Variable_name: table_cache Value: 256 *************************** 126. row *************************** Variable_name: table_type Value: MYISAM *************************** 127. row *************************** Variable_name: thread_cache_size Value: 8 *************************** 128. row *************************** Variable_name: thread_stack Value: 196608 *************************** 129. row *************************** Variable_name: tx_isolation Value: REPEATABLE-READ *************************** 130. row *************************** Variable_name: timezone Value: EDT *************************** 131. row *************************** Variable_name: tmp_table_size Value: 33554432 *************************** 132. row *************************** Variable_name: tmpdir Value: /var/tmp/ *************************** 133. row *************************** Variable_name: transaction_alloc_block_size Value: 8192 *************************** 134. row *************************** Variable_name: transaction_prealloc_size Value: 4096 *************************** 135. row *************************** Variable_name: version Value: 4.0.20-log *************************** 136. row *************************** Variable_name: version_comment Value: FreeBSD port: mysql-server-4.0.20 *************************** 137. row *************************** Variable_name: version_compile_os Value: portbld-freebsd4.8 *************************** 138. row *************************** Variable_name: wait_timeout Value: 28800 138 rows in set (0.00 sec) -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]