Sever Optimization Request...

  • Hi George...

    Our server had been running fine for the most part, but lately we seem to have been having random problems with either pages taking a long time to load or a MySql error about too many connections. The problems mainly seem to happen around the same time [usually morning in the US] but sometimes happen at other times. It might be something else causing an issue, as non-sql sections of the site seem to be running fine. I'm going to be contacting our server support as well, but figured it might be a good idea to post here as well seeing you've helped me with previous servers where my server host has not been able to. :)

    Required info follows. Thanking you in advance.

    Abe Babe...

    -------------------------------------------------------

    1. Dedicated server

    2. CPU: AMD Athlon 3800, [I think it's 2300 MHz]
    Memory: 2048MB
    Hard Drive: 250GB SATA
    OS: CentOS 4.x
    Apache version: 1.3.37
    PHP version: 4.4.3
    MySql version: 4.1.22

    3. vBulletin 3.6.8 [patch level 2]

    4. No Innodb databases

    5. Unsure

    6. top - 05:26:15 up 68 days, 15:12, 1 user, load average: 0.59, 0.46, 0.27
    top - 05:26:58 up 68 days, 15:13, 1 user, load average: 0.80, 0.57, 0.32
    Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie
    Cpu(s): 2.0% us, 0.7% sy, 0.0% ni, 95.3% id, 2.0% wa, 0.0% hi, 0.0% si
    Mem: 2010068k total, 1500248k used, 509820k free, 287948k buffers
    Swap: 4192956k total, 133188k used, 4059768k free, 724628k cached

    PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
    13353 nobody 16 0 1.7 0:00.05 0.5 52400 10m 4884 S httpd
    12091 mysql 15 0 0.3 0:22.82 1.4 64232 27m 2596 S mysqld
    13349 root 15 0 0.3 0:00.02 0.1 1960 1028 780 R top
    1 root 15 0 0.0 0:17.53 0.0 1696 400 368 S init
    2 root 34 19 0.0 0:00.26 0.0 0 0 0 S ksoftirqd/0
    3 root RT 0 0.0 0:00.00 0.0 0 0 0 S watchdog/0
    4 root 10 -5 0.0 0:00.02 0.0 0 0 0 S events/0
    5 root 20 -5 0.0 0:00.01 0.0 0 0 0 S khelper
    6 root 11 -5 0.0 0:00.02 0.0 0 0 0 S kthread
    40 root 10 -5 0.0 0:04.12 0.0 0 0 0 S kblockd/0
    41 root 20 -5 0.0 0:00.00 0.0 0 0 0 S kacpid
    138 root 20 -5 0.0 0:00.00 0.0 0 0 0 S ksuspend_usbd
    141 root 20 -5 0.0 0:00.00 0.0 0 0 0 S khubd
    143 root 10 -5 0.0 0:00.00 0.0 0 0 0 S kseriod
    160 root 10 -5 0.0 0:00.06 0.0 0 0 0 S kapmd
    169 root 16 -5 0.0 6:10.91 0.0 0 0 0 S kswapd0
    170 root 20 -5 0.0 0:00.00 0.0 0 0 0 S aio/07. [mysqld]
    set-variable = max_connections=500
    safe-show-database
    skip-locking
    skip-innodb
    query_cache_limit=10M
    query_cache_size=32M
    query_cache_type=1
    interactive_timeout=100
    wait_timeout=100
    connect_timeout=10
    thread_cache_size=128
    key_buffer=16M
    join_buffer=1M
    max_allowed_packet=64M
    table_cache=1024
    record_buffer=1M
    sort_buffer_size=2M
    read_buffer_size=2M
    max_connect_errors=10
    thread_concurrency=2
    8. +---------------------------------+--------------------------------------------+
    Variable_name Value
    +---------------------------------+--------------------------------------------+
    back_log 50
    basedir /
    binlog_cache_size 32768
    bulk_insert_buffer_size 8388608
    character_set_client latin1
    character_set_connection latin1
    character_set_database latin1
    character_set_results latin1
    character_set_server latin1
    character_set_system utf8
    character_sets_dir /usr/share/mysql/charsets/
    collation_connection latin1_swedish_ci
    collation_database latin1_swedish_ci
    collation_server latin1_swedish_ci
    concurrent_insert ON
    connect_timeout 10
    datadir /var/lib/mysql/
    date_format %Y-%m-%d
    datetime_format %Y-%m-%d %H:%i:%s
    default_week_format 0
    delay_key_write ON
    delayed_insert_limit 100
    delayed_insert_timeout 300
    delayed_queue_size 1000
    expire_logs_days 0
    flush OFF
    flush_time 0
    ft_boolean_syntax + -><()~*:""&
    ft_max_word_len 84
    ft_min_word_len 4
    ft_query_expansion_limit 20
    ft_stopword_file (built-in)
    group_concat_max_len 1024
    have_archive NO
    have_bdb NO
    have_blackhole_engine NO
    have_compress YES
    have_crypt YES
    have_csv NO
    have_example_engine NO
    have_geometry YES
    have_innodb DISABLED
    have_isam NO
    have_merge_engine YES
    have_ndbcluster NO
    have_openssl NO
    have_query_cache YES
    have_raid NO
    have_rtree_keys YES
    have_symlink YES
    init_connect
    init_file
    init_slave
    innodb_additional_mem_pool_size 1048576
    innodb_autoextend_increment 8
    innodb_buffer_pool_awe_mem_mb 0
    innodb_buffer_pool_size 8388608
    innodb_data_file_path
    innodb_data_home_dir
    innodb_fast_shutdown ON
    innodb_file_io_threads 4
    innodb_file_per_table OFF
    innodb_flush_log_at_trx_commit 1
    innodb_flush_method
    innodb_force_recovery 0
    innodb_lock_wait_timeout 50
    innodb_locks_unsafe_for_binlog OFF
    innodb_log_arch_dir
    innodb_log_archive OFF
    innodb_log_buffer_size 1048576
    innodb_log_file_size 5242880
    innodb_log_files_in_group 2
    innodb_log_group_home_dir
    innodb_max_dirty_pages_pct 90
    innodb_max_purge_lag 0
    innodb_mirrored_log_groups 1
    innodb_open_files 300
    innodb_table_locks ON
    innodb_thread_concurrency 8
    interactive_timeout 100
    join_buffer_size 1044480
    key_buffer_size 16777216
    key_cache_age_threshold 300
    key_cache_block_size 1024
    key_cache_division_limit 100
    language /usr/share/mysql/english/
    large_files_support ON
    lc_time_names en_US
    license GPL
    local_infile ON
    locked_in_memory OFF
    log OFF
    log_bin OFF
    log_error
    log_slave_updates OFF
    log_slow_queries OFF
    log_update OFF
    log_warnings 1
    long_query_time 10
    low_priority_updates OFF
    lower_case_file_system OFF
    lower_case_table_names 0
    max_allowed_packet 67107840
    max_binlog_cache_size 4294967295
    max_binlog_size 1073741824
    max_connect_errors 10
    max_connections 500
    max_delayed_threads 20
    max_error_count 64
    max_heap_table_size 16777216
    max_insert_delayed_threads 20
    max_join_size 4294967295
    max_length_for_sort_data 1024
    max_prepared_stmt_count 16382
    max_relay_log_size 0
    max_seeks_for_key 4294967295
    max_sort_length 1024
    max_tmp_tables 32
    max_user_connections 0
    max_write_lock_count 4294967295
    myisam_data_pointer_size 4
    myisam_max_extra_sort_file_size 2147483648
    myisam_max_sort_file_size 2147483647
    myisam_recover_options OFF
    myisam_repair_threads 1
    myisam_sort_buffer_size 8388608
    myisam_stats_method nulls_unequal
    net_buffer_length 16384
    net_read_timeout 30
    net_retry_count 10
    net_write_timeout 60
    new OFF
    old_passwords OFF
    open_files_limit 2558
    pid_file /var/lib/mysql/seph.adventchildren.net.pid
    port 3306
    preload_buffer_size 32768
    prepared_stmt_count 0
    protocol_version 10
    query_alloc_block_size 8192
    query_cache_limit 10485760
    query_cache_min_res_unit 4096
    query_cache_size 33554432
    query_cache_type ON
    query_cache_wlock_invalidate OFF
    query_prealloc_size 8192
    range_alloc_block_size 2048
    read_buffer_size 2093056
    read_only OFF
    read_rnd_buffer_size 262144
    relay_log_purge ON
    relay_log_space_limit 0
    rpl_recovery_rank 0
    secure_auth OFF
    server_id 0
    skip_external_locking ON
    skip_networking OFF
    skip_show_database OFF
    slave_net_timeout 3600
    slave_transaction_retries 0
    slow_launch_time 2
    socket /var/lib/mysql/mysql.sock
    sort_buffer_size 2097144
    sql_mode
    sql_notes ON
    sql_warnings ON
    storage_engine MyISAM
    sync_binlog 0
    sync_frm ON
    sync_replication 0
    sync_replication_slave_id 0
    sync_replication_timeout 0
    system_time_zone CST
    table_cache 1024
    table_type MyISAM
    thread_cache_size 128
    thread_stack 196608
    time_format %H:%i:%s
    time_zone SYSTEM
    tmp_table_size 33554432
    tmpdir
    transaction_alloc_block_size 8192
    transaction_prealloc_size 4096
    tx_isolation REPEATABLE-READ
    version 4.1.22-standard
    version_comment MySQL Community Edition - Standard (GPL)
    version_compile_machine i686
    version_compile_os pc-linux-gnu
    wait_timeout 100
    +---------------------------------+--------------------------------------------+
    +----------------------------+-----------+
    Variable_name Value
    +----------------------------+-----------+
    Aborted_clients 0
    Aborted_connects 2
    Binlog_cache_disk_use 0
    Binlog_cache_use 0
    Bytes_received 2535957
    Bytes_sent 577144790
    Com_admin_commands 0
    Com_alter_db 0
    Com_alter_table 0
    Com_analyze 0
    Com_backup_table 0
    Com_begin 0
    Com_change_db 928
    Com_change_master 0
    Com_check 0
    Com_checksum 0
    Com_commit 0
    Com_create_db 0
    Com_create_function 0
    Com_create_index 0
    Com_create_table 2
    Com_dealloc_sql 0
    Com_delete 45
    Com_delete_multi 0
    Com_do 0
    Com_drop_db 0
    Com_drop_function 0
    Com_drop_index 0
    Com_drop_table 2
    Com_drop_user 0
    Com_execute_sql 0
    Com_flush 0
    Com_grant 0
    Com_ha_close 0
    Com_ha_open 0
    Com_ha_read 0
    Com_help 0
    Com_insert 105
    Com_insert_select 2
    Com_kill 0
    Com_load 0
    Com_load_master_data 0
    Com_load_master_table 0
    Com_lock_tables 2
    Com_optimize 0
    Com_preload_keys 0
    Com_prepare_sql 0
    Com_purge 0
    Com_purge_before_date 0
    Com_rename_table 0
    Com_repair 0
    Com_replace 12
    Com_replace_select 0
    Com_reset 0
    Com_restore_table 0
    Com_revoke 0
    Com_revoke_all 0
    Com_rollback 0
    Com_savepoint 0
    Com_select 3020
    Com_set_option 15
    Com_show_binlog_events 0
    Com_show_binlogs 1
    Com_show_charsets 2
    Com_show_collations 2
    Com_show_column_types 0
    Com_show_create_db 0
    Com_show_create_table 0
    Com_show_databases 0
    Com_show_errors 0
    Com_show_fields 16
    Com_show_grants 1
    Com_show_innodb_status 0
    Com_show_keys 0
    Com_show_logs 0
    Com_show_master_status 0
    Com_show_ndb_status 0
    Com_show_new_master 0
    Com_show_open_tables 0
    Com_show_privileges 0
    Com_show_processlist 12
    Com_show_slave_hosts 0
    Com_show_slave_status 0
    Com_show_status 16
    Com_show_storage_engines 0
    Com_show_tables 1
    Com_show_variables 17
    Com_show_warnings 0
    Com_slave_start 0
    Com_slave_stop 0
    Com_stmt_close 0
    Com_stmt_execute 0
    Com_stmt_prepare 0
    Com_stmt_reset 0
    Com_stmt_send_long_data 0
    Com_truncate 2
    Com_unlock_tables 2
    Com_update 184
    Com_update_multi 2
    Connections 946
    Created_tmp_disk_tables 2
    Created_tmp_files 0
    Created_tmp_tables 13
    Delayed_errors 0
    Delayed_insert_threads 0
    Delayed_writes 0
    Flush_commands 1
    Handler_commit 0
    Handler_delete 56
    Handler_discover 0
    Handler_read_first 272
    Handler_read_key 19715
    Handler_read_next 65824
    Handler_read_prev 1255
    Handler_read_rnd 542
    Handler_read_rnd_next 2811378
    Handler_rollback 0
    Handler_update 187
    Handler_write 308
    Key_blocks_not_flushed 0
    Key_blocks_unused 13049
    Key_blocks_used 1448
    Key_read_requests 79934
    Key_reads 1448
    Key_write_requests 101
    Key_writes 52
    Max_used_connections 3
    Not_flushed_delayed_rows 0
    Open_files 314
    Open_streams 0
    Open_tables 164
    Opened_tables 178
    Qcache_free_blocks 108
    Qcache_free_memory 17444912
    Qcache_hits 6043
    Qcache_inserts 2324
    Qcache_lowmem_prunes 0
    Qcache_not_cached 5
    Qcache_queries_in_cache 734
    Qcache_total_blocks 1787
    Questions 11366
    Rpl_status NULL
    Select_full_join 0
    Select_full_range_join 5
    Select_range 328
    Select_range_check 0
    Select_scan 891
    Slave_open_temp_tables 0
    Slave_retried_transactions 0
    Slave_running OFF
    Slow_launch_threads 0
    Slow_queries 0
    Sort_merge_passes 0
    Sort_range 71
    Sort_rows 3749
    Sort_scan 85
    Table_locks_immediate 4230
    Table_locks_waited 0
    Threads_cached 2
    Threads_connected 1
    Threads_created 3
    Threads_running 1
    Uptime 2573
    +----------------------------+-----------+
    Uptime: 2573 Threads: 1 Questions: 11367 Slow queries: 0 Opens: 178 Flush tables: 1 Open tables: 164 Queries per second avg: 4.418
    mysqladmin Ver 8.41 Distrib 4.1.22, for pc-linux-gnu on i686
    (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license

    Server version 4.1.22-standard
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/lib/mysql/mysql.sock
    Uptime: 42 min 53 sec

    Threads: 1 Questions: 11367 Slow queries: 0 Opens: 178 Flush tables: 1 Open tables: 164 Queries per second avg: 4.418
    +-----+------+-----------+----+---------+------+-------+------------------+
    Id User Host db Command Time State Info
    +-----+------+-----------+----+---------+------+-------+------------------+
    945 root localhost Query 0 show processlist
    +-----+------+-----------+----+---------+------+-------+------------------+9. Only a theories database which isn't used anymore and Coppermine Photo Gallery which is only currently used for development purposes and not set up for public access. Main site uses PHP files [includes for layouts and a small script for domain detection], but not MySql.

    [B]10. http://www.adventchildren.net/upload/phpinfo.php

    12. KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 15
    MinSpareServers 5
    MaxSpareServers 10
    StartServers 5
    MaxClients 150
    MaxRequestsPerChild 0

    13. None found

    14. Linux seph.adventchildren.net 2.6.21.3 #1 Wed May 30 05:30:52 CDT 2007 i686 athlon i386 GNU/Linuxcore file size (blocks, -c) unlimited
    data seg size (kbytes, -d) unlimited
    file size (blocks, -f) unlimited
    pending signals (-i) 31727
    max locked memory (kbytes, -l) 32
    max memory size (kbytes, -m) unlimited
    open files (-n) 1024
    pipe size (512 bytes, -p) 8
    POSIX message queues (bytes, -q) 819200
    stack size (kbytes, -s) unlimited
    cpu time (seconds, -t) unlimited
    max user processes (-u) 31727
    virtual memory (kbytes, -v) unlimited
    file locks (-x) unlimitedprocessor : 0
    vendor_id : AuthenticAMD
    cpu family : 15
    model : 47
    model name : AMD Athlon(tm) 64 Processor 3800+
    stepping : 2
    cpu MHz : 2388.046
    cache size : 512 KB
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 1
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm ts fid vid ttp tm stc
    bogomips : 4780.19
    clflush size : 64


  • Try the following in this exact order. You can ignore any of the suggestions that you have already done.

    1. Upgrade MySQL server to 4.1.22
    2. Upgrade PHP to 5.2.5 if you're on 5.x or PHP 4.4.8 if you're on PHP 4.x after upgrading MySQL (ensure you install as ISAPI and NOT CGI)
    3. Edit mysql server's /etc/my.cnf or c:my.ini for windows and place the following mysql server settings in /etc/my.cnf and restart mysql server afterwards. Make sure to restart mysql server everytime you make changes to your my.cnf for the changes to take effect.

    If mysql doesn't restart properly after my.cnf changes and you're on VPS server, make sure skip-innodb entry is removed or commented out from below my.cnf


    [mysqld]
    safe-show-database
    old_passwords
    back_log = 75
    skip-innodb
    max_connections = 500
    key_buffer = 32M
    myisam_sort_buffer_size = 64M
    join_buffer_size = 1M
    read_buffer_size = 1M
    sort_buffer_size = 2M
    table_cache = 4000
    thread_cache_size = 128
    wait_timeout = 15
    connect_timeout = 10
    tmp_table_size = 64M
    max_heap_table_size = 64M
    max_allowed_packet = 64M
    net_buffer_length = 16384
    max_connect_errors = 10
    thread_concurrency = 2
    read_rnd_buffer_size = 786432
    bulk_insert_buffer_size = 8M
    query_cache_limit = 4M
    query_cache_size = 64M
    query_cache_type = 1
    query_prealloc_size = 262144
    query_alloc_block_size = 65536
    transaction_alloc_block_size = 8192
    transaction_prealloc_size = 4096
    default-storage-engine = MyISAM

    [mysql.server]
    user=mysql
    basedir=/var/lib

    [mysqld_safe]
    err-log=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    nice = -10
    open_files_limit = 8192

    [mysqldump]
    quick
    max_allowed_packet = 16M

    [myisamchk]
    key_buffer = 64M
    sort_buffer = 64M
    read_buffer = 16M
    write_buffer = 16M

    [mysqlhotcopy]
    interactive-timeout


    If you get mysql server gone away error messages, then keep increasing wait_timeout value in my.cnf by 60 second increments, then restart mysql after my.cnf changes for it to take effect. Test for a few days and see if you get less or eliminate that error message. If it still occurs, then keep repeating the 60 second increment until the message goes away. Each vB forum and server will have different optimal wait_timeout values depending on your vB forum traffic patterns and server hardware specifications.

    4. Remove Eaccelerator or APC Cache if they're installed (check phpinfo.php url of yours to see) and instead install Xcache v1.2.1 final release or Xcache v1.2.2 http://xcache.lighttpd.net/wiki/Release-1.2.2 which seems to be a bit faster than APC Cache - http://www.vbulletin.com/forum/showthread.php?t=213267. Xcache site http://xcache.lighttpd.net/, documentation http://trac.lighttpd.net/trac/wiki/Docs and forums http://forum.lighttpd.net/forum/4

    5. Upgrade to vB 3.0.17 http://www.vbulletin.com/forum/showthread.php?t=209720 if you're on vB 3.0.xx or upgrade to vB 3.5.8 http://www.vbulletin.com/forum/showthread.php?t=221903 if you're on vB 3.5.x. Upgrade to vB 3.6.8 PL2 http://www.vbulletin.com/forum/showthread.php?t=247739 if you're on vB 3.6.x

    6. If you just upgraded to vB 3.5.x/3.6.x try to disable these 4 options:

    Admin CP -> vBulletin Options -> Forums Home Page Options -> Display Logged in Users?

    Admin CP -> vBulletin Options -> Forum Display Options (forumdisplay) -> Show Users Browsing Forums

    Admin CP -> vBulletin Options -> Thread Display Options -> Show Users Browsing Thread

    Admin CP -> vBulletin Options -> Message Searching Options -> Automatic Similar Thread search

    7. Check phpinfo.php url to see if you have mod_gzip (Apache 1.3.x) or mod_deflate (Apache 2.x) loaded/installed (on phpinfo.php url page in browser you can do CTRL+F to bring up find prompt and type in mod_gzip or mod_deflate to quickly see). If you have either mod_gzip or mod_deflate loaded, then ensure vB admincp gzip compression is disabled since it's the same thing as mod_gzip or mod_deflate and double compression will just increase cpu loads. If you don't have mod_gzip or mod_deflate installed, then DO NOT set vB admincp gzip compression to a level higher than 1. Higher than 1, will only increase cpu loads unncessarily.

    8. Edit httpd.conf values to following and restart apache

    KeepAlive: On
    MaxKeepAliveRequests: 100
    KeepAliveTimeout: 1
    MinSpareServers: 10
    MaxSpareServers: 15
    StartServers: 10
    MaxClients: 150
    MaxRequestsPerChild: 1000







  • #If you have any other info about this subject , Please add it free.#
    Your name:
    E-mail:
    Telphone:

    Your comments:


    If you have any other info about Sever Optimization Request... , Please add it free.

    9 January 2009 | cameltoepants.com | edit