PDA

View Full Version : (Shared) Server Optimization Request


fridayweb
Sat 22nd Apr '06, 1:12am
A lot of the time my not-too-busy forum runs fine, but there are daily load issues which apparently stem from my forum. Any suggestions would be greatly appreciated.


1. Shared server, exact number of sites not provided by host ("anywhere from 128 - 500+ depending on the type of site and resources used.")

2. cpu speed/type single or dual cpus): dual dual xeon 2.8 w/hyperthreading
enabled
how much memory installed: 4GB
hard drive type/configuration: 250GB SATA
linux distributor or windows version: centos 4.3
apache/IIS version: apache 1.3.33
PHP version: php 4.4.1
MySQL version: mysql 4.1.14

3. InnoDB may be used by other sites on server.

4. From RPM as released by the MySQL vendor.

5. top - 19:31:09 up 30 days, 14:19, 3 users, load average: 1.33, 1.65,
1.93
Tasks: 214 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 21.9% us, 18.2% sy, 0.0% ni, 52.8% id, 7.0% wa, 0.1% hi,
0.0% si
Mem: 4151448k total, 3585668k used, 565780k free, 114352k buffers
Swap: 4096532k total, 732k used, 4095800k free, 2465032k cached

(this is with my forum disabled...)

6. [mysqld]
skip-locking
old-passwords
key_buffer = 256M
max_allowed_packet = 16M
table_cache = 2048
sort_buffer_size = 32M
read_buffer_size = 32M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size= 64M
thread_concurrency = 8
server-id = 1

max_connections = 600
max_user_connections = 20
interactive_timeout = 120
wait_timeout = 60
connect_timeout = 60
max_connect_errors = 5

[mysqldump]
quick
max_allowed_packet = 32M

[mysql]
no-auto-rehash

[mysqlhotcopy]
interactive-timeout

7. root@ismarus [~]# mysqladmin var

+---------------------------------+-------------------------------------------------+
| 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 | 60 |
| 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 | YES |
| have_isam | NO |
| 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 | ibdata1:10M:autoextend |
| 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 | 120 |
| join_buffer_size | 131072 |
| key_buffer_size | 268435456 |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| language | /usr/share/mysql/english/ |
| large_files_support | ON |
| 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 | 16776192 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_connect_errors | 5 |
| max_connections | 600 |
| 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_relay_log_size | 0 |
| max_seeks_for_key | 4294967295 |
| max_sort_length | 1024 |
| max_tmp_tables | 32 |
| max_user_connections | 20 |
| 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 | 67108864 |
| net_buffer_length | 16384 |
| net_read_timeout | 30 |
| net_retry_count | 10 |
| net_write_timeout | 60 |
| new | OFF |
| old_passwords | ON |
| open_files_limit | 4706 |
| pid_file |
/var/lib/mysql/ismarus.webserversystems.com.pid |
| port | 3306 |
| preload_buffer_size | 32768 |
| protocol_version | 10 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 67108864 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| range_alloc_block_size | 2048 |
| read_buffer_size | 33550336 |
| 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 | 1 |
| 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 | 33554424 |
| sql_mode | |
| storage_engine | MyISAM |
| sql_notes | OFF |
| sql_warnings | OFF |
| sync_binlog | 0 |
| sync_replication | 0 |
| sync_replication_slave_id | 0 |
| sync_replication_timeout | 0 |
| sync_frm | ON |
| system_time_zone | EDT |
| table_cache | 2048 |
| table_type | MyISAM |
| thread_cache_size | 8 |
| thread_stack | 126976 |
| 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.14-standard |
| version_comment | MySQL Community Edition - Standard
(GPL) |
| version_compile_machine | i686 |
| version_compile_os | pc-linux-gnu |
| wait_timeout | 60 |

+---------------------------------+-------------------------------------------------+

root@ismarus [~]# mysqladmin ext
+----------------------------+------------+
| Variable_name | Value |
+----------------------------+------------+
| Aborted_clients | 478 |
| Aborted_connects | 366 |
| Binlog_cache_disk_use | 0 |
| Binlog_cache_use | 0 |
| Bytes_received | 729623025 |
| Bytes_sent | 3644811718 |
| Com_admin_commands | 3746609 |
| Com_alter_db | 0 |
| Com_alter_table | 3 |
| Com_analyze | 0 |
| Com_backup_table | 0 |
| Com_begin | 2967 |
| Com_change_db | 3928949 |
| Com_change_master | 0 |
| Com_check | 2 |
| Com_checksum | 0 |
| Com_commit | 2946 |
| Com_create_db | 27 |
| Com_create_function | 0 |
| Com_create_index | 0 |
| Com_create_table | 1452 |
| Com_dealloc_sql | 0 |
| Com_delete | 36326 |
| Com_delete_multi | 0 |
| Com_do | 0 |
| Com_drop_db | 0 |
| Com_drop_function | 0 |
| Com_drop_index | 0 |
| Com_drop_table | 1330 |
| Com_drop_user | 0 |
| Com_execute_sql | 0 |
| Com_flush | 87 |
| Com_grant | 84 |
| Com_ha_close | 0 |
| Com_ha_open | 0 |
| Com_ha_read | 0 |
| Com_help | 0 |
| Com_insert | 111260 |
| Com_insert_select | 50 |
| Com_kill | 0 |
| Com_load | 8 |
| Com_load_master_data | 0 |
| Com_load_master_table | 0 |
| Com_lock_tables | 253 |
| Com_optimize | 50 |
| 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 | 4884 |
| Com_replace_select | 0 |
| Com_reset | 0 |
| Com_restore_table | 0 |
| Com_revoke | 0 |
| Com_revoke_all | 0 |
| Com_rollback | 9 |
| Com_savepoint | 0 |
| Com_select | 1308649 |
| Com_set_option | 9151 |
| Com_show_binlog_events | 0 |
| Com_show_binlogs | 20 |
| Com_show_charsets | 169 |
| Com_show_collations | 169 |
| Com_show_column_types | 0 |
| Com_show_create_db | 17 |
| Com_show_create_table | 1835 |
| Com_show_databases | 227 |
| Com_show_errors | 0 |
| Com_show_fields | 1952 |
| Com_show_grants | 52 |
| Com_show_innodb_status | 0 |
| Com_show_keys | 318 |
| Com_show_logs | 0 |
| Com_show_master_status | 0 |
| Com_show_new_master | 0 |
| Com_show_open_tables | 0 |
| Com_show_privileges | 0 |
| Com_show_processlist | 290 |
| Com_show_slave_hosts | 0 |
| Com_show_slave_status | 0 |
| Com_show_status | 140 |
| Com_show_storage_engines | 3 |
| Com_show_tables | 9979 |
| Com_show_variables | 405 |
| Com_show_warnings | 0 |
| Com_slave_start | 0 |
| Com_slave_stop | 0 |
| Com_stmt_prepare | 0 |
| Com_stmt_execute | 0 |
| Com_stmt_send_long_data | 0 |
| Com_stmt_reset | 0 |
| Com_stmt_close | 0 |
| Com_truncate | 4 |
| Com_unlock_tables | 268 |
| Com_update | 91448 |
| Com_update_multi | 0 |
| Connections | 161287 |
| Created_tmp_disk_tables | 8055 |
| Created_tmp_files | 215 |
| Created_tmp_tables | 27402 |
| Delayed_errors | 0 |
| Delayed_insert_threads | 0 |
| Delayed_writes | 0 |
| Flush_commands | 1 |
| Handler_commit | 66 |
| Handler_delete | 81609 |
| Handler_discover | 0 |
| Handler_read_first | 143146 |
| Handler_read_key | 63183501 |
| Handler_read_next | 45817493 |
| Handler_read_prev | 217904 |
| Handler_read_rnd | 164720680 |
| Handler_read_rnd_next | 4287817437 |
| Handler_rollback | 2029 |
| Handler_update | 3339834 |
| Handler_write | 5913560 |
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 206456 |
| Key_blocks_used | 26477 |
| Key_read_requests | 78909816 |
| Key_reads | 117286 |
| Key_write_requests | 1643489 |
| Key_writes | 401192 |
| Max_used_connections | 129 |
| Not_flushed_delayed_rows | 0 |
| Open_files | 4029 |
| Open_streams | 0 |
| Open_tables | 2048 |
| Opened_tables | 27439 |
| Qcache_free_blocks | 2138 |
| Qcache_free_memory | 6746928 |
| Qcache_hits | 4586928 |
| Qcache_inserts | 1214784 |
| Qcache_lowmem_prunes | 803956 |
| Qcache_not_cached | 90681 |
| Qcache_queries_in_cache | 8951 |
| Qcache_total_blocks | 25378 |
| Questions | 10263622 |
| Rpl_status | NULL |
| Select_full_join | 2942 |
| Select_full_range_join | 0 |
| Select_range | 30755 |
| Select_range_check | 27 |
| Select_scan | 569335 |
| Slave_open_temp_tables | 0 |
| Slave_running | OFF |
| Slave_retried_transactions | 0 |
| Slow_launch_threads | 20 |
| Slow_queries | 594 |
| Sort_merge_passes | 0 |
| Sort_range | 36330 |
| Sort_rows | 165297538 |
| Sort_scan | 68063 |
| Table_locks_immediate | 1847491 |
| Table_locks_waited | 441 |
| Threads_cached | 5 |
| Threads_connected | 3 |
| Threads_created | 1259 |
| Threads_running | 1 |
| Uptime | 86342 |
+----------------------------+------------+

8. Many other scripts & sites on server which utilise php and mysql

9. Average users: 50?
Max concurrent users: 251 (prior to moving to this server... I'd say probably 125 recently)
Cookie timeout: 15 minutes

10. http://www.fridaythe13thfilms.com/phpinfo.php (same server/account, different domain)

11. Not static, modified as needed

12. 3.5.3

13. No max file size exceeded errors.

14. Post output from these 3 commands:

> uname -a

root@ismarus [~]# uname -a
Linux ismarus.webserversystems.com 2.6.9-22.0.1.ELsmp #1 SMP Thu Oct 27
13:14:25 CDT 2005 i686 i686 i386 GNU/Linux

> ulimit -aH

root@ismarus [~]# ulimit -aH
core file size (blocks, -c) 1000000
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 4096
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14335
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

> cat /proc/cpuinfo

root@ismarus [~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.919
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm pni
monitor ds_cpl cid xtpr
bogomips : 5505.02

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.919
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm pni
monitor ds_cpl cid xtpr
bogomips : 5570.56

processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.919
cache size : 1024 KB
physical id : 3
siblings : 2
core id : 3
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm pni
monitor ds_cpl cid xtpr
bogomips : 5570.56

processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.919
cache size : 1024 KB
physical id : 3
siblings : 2
core id : 3
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm pni
monitor ds_cpl cid xtpr
bogomips : 5570.56


Thanks for any help you can provide.

eva2000
Sat 22nd Apr '06, 11:10am
Is this your server though as shared hosting you wont have access to change my.cnf etc

1. Upgrade MySQL server to 4.1.18 http://www.vbulletin.com/forum/showthread.php?t=175163
2. Upgrade PHP to 4.4.2 if you use phpadsnew make sure to update to phpadsnew 2.0.7 or higher to work with PHP 4.4.1/4.4.2
3. Edit /etc/my.cnf and place the following mysql server settings in /etc/my.cnf and restart mysql server afterwards


[mysqld]
safe-show-database
old_passwords
back_log = 75
max_connections = 650
key_buffer = 256M
myisam_sort_buffer_size = 64M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1800
thread_cache_size = 512
wait_timeout = 30
connect_timeout = 10
tmp_table_size = 128M
max_heap_table_size = 64M
max_allowed_packet = 64M
max_connect_errors = 10
read_rnd_buffer_size = 524288
bulk_insert_buffer_size = 8M
query_cache_limit = 4M
query_cache_size = 192M
query_cache_type = 1
query_prealloc_size = 163840
query_alloc_block_size = 32768
default-storage-engine = MyISAM

# innodb settings
innodb_data_file_path=ibdata1:10M:autoextend
innodb_buffer_pool_size=128M
innodb_additional_mem_pool_size=10M
innodb_log_file_size=20M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_open_files = 300
innodb_status_file
innodb_thread_concurrency = 8

[mysqld_safe]
nice = -5
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


4. Install eAccelerator http://www.vbulletin.com/forum/showthread.php?t=75878

5. Upgrade to vB 3.5.4 http://www.vbulletin.com/forum/showthread.php?t=176170 if you're on vB 3.5.x

6. If you just upgraded to vB 3.5.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. You're also using CentOS and 2.6.9-22 smp kernel which has a load issue bug http://www.vbulletin.com/forum/showthread.php?t=171071 you might want to point your web host to this thread http://www.vbulletin.com/forum/showthread.php?t=171071 and get them to upgrade to the latest stable smp 2.6.xx linux kernel