PDA

View Full Version : VPS Optimization Request


Kamran
Sun 26th Feb '06, 9:28am
Hi,

I moved our site to a new host about a month ago, from a shared hosting account to a VPS.

At first things seemed ok, but over the past few days members have been complaining (http://www.talkwrestlingonline.com/forum/showthread.php?t=28698) about the time it takes to post/reply to threads and edit them. I've also noticed this myself.

I've tried to include as much of the info as you have requested but I couldnt do it all as I wasnt sure how to find out some of the information required.

1. Is this on dedicated or shared virual server? Its on a Virtual Private Server (VPS)

2. General server information:

Operating system Linux
Kernel version 2.4.20-021stab028.19.777-enterprise
Machine Type i686
Apache version 1.3.34 (Unix)
PERL version 5.8.7
PHP version 4.4.1
MySQL version 4.1.14-standard

Host System Specifications:

The below is taken from the webhosts VPS page:

Intel Dual Xeon 3.06Ghz
8GB Registered ECC DDR RAM
73GB 15,000rpm U320 SCSI drives in Hardware RAID 10
Hot-Spare drives, zero downtime during failure
Hot-Swap drives and fans, replaceable on the fly
Redundant Hot-Swap power supplies

3. if you use mysql 4.x instead of mysql 3.23.x, do you have any innodb type databases/tables on your server? Not sure.

4. if possible how mysql was compiled/installed Not sure.

5. Your top stats: I'm not sure how I find these?

6. your mysql configuration variables located at /etc/my.cnf or c:\my.cnf or my.ini so post the contents inside of my.cnf (minus any passwords of course).


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 5
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 28800
join_buffer_size 131072
key_buffer_size 8388600
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 1048576
max_binlog_cache_size 4294967295
max_binlog_size 1073741824
max_connect_errors 10
max_connections 100
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 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
net_buffer_length 16384
net_read_timeout 30
net_retry_count 10
net_write_timeout 60
new OFF
old_passwords OFF
open_files_limit 1024
pid_file /var/lib/mysql/vps.talkwrestlingonline.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 0
query_cache_type ON
query_cache_wlock_invalidate OFF
query_prealloc_size 8192
range_alloc_block_size 2048
read_buffer_size 131072
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
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 GMT
table_cache 64
table_type MyISAM
thread_cache_size 0
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 28800
Aborted_clients 16
Aborted_connects 451
Binlog_cache_disk_use 0
Binlog_cache_use 0
Bytes_received 1623412619
Bytes_sent 3181355813
Com_admin_commands 0
Com_alter_db 0
Com_alter_table 18
Com_analyze 0
Com_backup_table 0
Com_begin 5532
Com_change_db 1752392
Com_change_master 0
Com_check 0
Com_checksum 0
Com_commit 5532
Com_create_db 0
Com_create_function 0
Com_create_index 0
Com_create_table 5
Com_dealloc_sql 0
Com_delete 93519
Com_delete_multi 0
Com_do 0
Com_drop_db 0
Com_drop_function 0
Com_drop_index 0
Com_drop_table 5
Com_drop_user 0
Com_execute_sql 0
Com_flush 4
Com_grant 2
Com_ha_close 0
Com_ha_open 0
Com_ha_read 0
Com_help 0
Com_insert 824266
Com_insert_select 3555
Com_kill 0
Com_load 0
Com_load_master_data 0
Com_load_master_table 0
Com_lock_tables 6501
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 67615
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 13976075
Com_set_option 24343
Com_show_binlog_events 0
Com_show_binlogs 0
Com_show_charsets 0
Com_show_collations 0
Com_show_column_types 0
Com_show_create_db 0
Com_show_create_table 270
Com_show_databases 16
Com_show_errors 0
Com_show_fields 278
Com_show_grants 2
Com_show_innodb_status 0
Com_show_keys 8
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 9892
Com_show_slave_hosts 0
Com_show_slave_status 0
Com_show_status 1
Com_show_storage_engines 0
Com_show_tables 280
Com_show_variables 126
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 0
Com_unlock_tables 6501
Com_update 1661334
Com_update_multi 560
Connections 1749251
Created_tmp_disk_tables 7130
Created_tmp_files 71935
Created_tmp_tables 857108
Delayed_errors 0
Delayed_insert_threads 0
Delayed_writes 0
Flush_commands 1
Handler_commit 0
Handler_delete 435093
Handler_discover 0
Handler_read_first 2653527
Handler_read_key 238681767
Handler_read_next 1065022643
Handler_read_prev 20732871
Handler_read_rnd 81644658
Handler_read_rnd_next 1120629444
Handler_rollback 0
Handler_update 2037949
Handler_write 74079136
Key_blocks_not_flushed 0
Key_blocks_unused 890
Key_blocks_used 7248
Key_read_requests 630159162
Key_reads 2154423
Key_write_requests 2031429
Key_writes 1455026
Max_used_connections 100
Not_flushed_delayed_rows 0
Open_files 95
Open_streams 0
Open_tables 64
Opened_tables 84721
Qcache_free_blocks 0
Qcache_free_memory 0
Qcache_hits 0
Qcache_inserts 0
Qcache_lowmem_prunes 0
Qcache_not_cached 0
Qcache_queries_in_cache 0
Qcache_total_blocks 0
Questions 20191593
Rpl_status NULL
Select_full_join 54810
Select_full_range_join 31077
Select_range 4245972
Select_range_check 0
Select_scan 2579683
Slave_open_temp_tables 0
Slave_running OFF
Slave_retried_transactions 0
Slow_launch_threads 17
Slow_queries 3226
Sort_merge_passes 35966
Sort_range 1718923
Sort_rows 504962280
Sort_scan 959017
Table_locks_immediate 26276795
Table_locks_waited 17516
Threads_cached 0
Threads_connected 1
Threads_created 1749250
Threads_running 1
Uptime 2999159
7. MySQL stats from ssh telnet as root user type: I couldnt get this to work.

8. is your vB the only thing on the server? or other scripts & sites which utilise php and mysql? The only thing on my VPS is the site which the forum is apart of. The main part of the site is the forum and its the only database on there.

9. how many average and max concurrent users on your vB forum ? and what your cookie timeout is ? How/where would I find this?

10. create a file named phpinfo.php and place this code in it and post the url/link to it from your web site Click here (http://www.talkwrestlingonline.com/phpinfo.php)

11. if you run Apache and you have your own dedicated server or access to your httpd.conf (apache configuration file) can you post the values you have set for the following :
KeepAlive
MaxKeepAliveRequests
KeepAliveTimeout
MinSpareServers
MaxSpareServers
StartServers
MaxClients
AND Maxrequestsperchild value = Not sure if I would have access to this.

12. what version of vB are you running? Version 3.5.4

13. check to see if any files i.e. apache log files are hitting 2GB or 4GB max file size limits i.e. see if you have max file size exceeded messages in apache error log

14. Post output from these 3 commands
uname -a
ulimit -aH
cat /proc/cpuinfo Not sure how to do either of these questions.

Thanks.

eva2000
Mon 27th Feb '06, 2:04am
do you have ssh telnet access ? some of the required info needs root user access which on your web host can provide

what control you using ? ensim, plesk, whm/cpanel, directadmin ?

seems you're hitting max_connection limit set in your my.cnf file

to get top stats in ssh telnet type

top

can you edit your /etc/my.cnf file or create a /etc/my.cnf at using ssh telnet ??

Kamran
Mon 27th Feb '06, 9:48am
Hi,

Yes I've got SSH access...although I've only ever used it to backup my forums (from looking at the VB manual instructions).

I'm using CPanel 10.

I'm not sure about editing/creating the /etc/my.cnf file - how can I check?

Top stats:


13:46:18 up 54 days, 15:27, 1 user, load average: 2.76, 2.69, 1.97
76 processes: 75 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states: 8.0% user 1.0% system 0.0% nice 0.0% iowait 90.3% idle
CPU1 states: 8.3% user 0.3% system 0.0% nice 0.0% iowait 90.1% idle
CPU2 states: 8.1% user 1.0% system 0.0% nice 0.0% iowait 90.2% idle
CPU3 states: 9.0% user 2.1% system 0.0% nice 0.0% iowait 88.1% idle
Mem: 8266652k av, 8225936k used, 40716k free, 0k shrd, 1454928k buff
3496580k active, 3926524k inactive
Swap: 6289320k av, 1678516k used, 4610804k free 3910056k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
10044 nobody 14 0 12000 10M 4172 S 5.7 0.1 111:49 0 httpd
10767 nobody 9 0 12292 11M 4092 S 5.1 0.1 109:28 2 httpd
10775 nobody 9 0 12340 10M 4132 S 3.7 0.1 110:46 2 httpd
1715 nobody 19 0 7952 7104 3360 S 1.9 0.0 0:00 0 httpd
10772 nobody 9 0 11928 10M 4164 S 1.7 0.1 110:50 3 httpd
27164 nobody 9 0 11992 10M 3788 S 1.3 0.1 0:03 1 httpd
31163 nobody 9 0 7800 6964 3356 S 1.3 0.0 0:00 2 httpd
7281 root 9 0 5696 3496 1428 S 0.5 0.0 40:20 1 cppop
32298 talkwres 12 0 1084 1084 748 R 0.5 0.0 0:00 3 top
7200 mailman 10 0 4648 2700 1856 S 0.1 0.0 10:52 2 python
7232 mailman 9 0 4680 2708 1852 S 0.1 0.0 10:49 3 python
7233 mailman 10 0 4728 2800 1852 S 0.1 0.0 11:29 0 python
2657 mysql 9 0 26444 16M 2716 S 0.1 0.2 9:08 1 mysqld
I also managed to get this bit of info...

In SSH I typed "cat /etc/my.cnf" and this came up:


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

I also typed in the text you wrote in question 14, here are the replies:


[~]# uname -a
Linux vps.talkwrestlingonline.com 2.4.20-021stab028.19.777-enterprise #1 SMP Wed Oct 19 13:05:01 MSD 2005 i686 i686 i386 GNU/Linux
[~]# ulimit -aH
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 28416
virtual memory (kbytes, -v) unlimited
[~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.211
cache size : 0 KB
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 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm lm
bogomips : 5989.99
processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.211
cache size : 0 KB
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 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm lm
bogomips : 5989.99
processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.211
cache size : 0 KB
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 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm lm
bogomips : 5989.99
processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.211
cache size : 0 KB
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 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm lm
bogomips : 5989.99


I couldnt do question 7, I SSH'd in and typed:


mysqladmin -uUSERNAME root -p DATABSENAME var ext stat ver


...but it didnt work.

Thanks.

eva2000
Tue 28th Feb '06, 1:28am
okay to edit /etc/my.cnf in ssh telnet type

mv /etc/my.cnf /etc/my.cnf-old

then type either

nano /etc/my.cnf

or

pico /etc/my.cnf

and a blank my.cnf file will be open

copy and paste into it the below quoted contents


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
safe-show-database
back_log = 50
skip-innodb
max_connections = 500
key_buffer = 16M
myisam_sort_buffer_size = 64M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1800
thread_cache_size = 256
wait_timeout = 180
connect_timeout = 10
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
max_connect_errors = 10
thread_concurrency = 4
query_cache_limit = 8M
query_cache_size = 80M
query_cache_type = 1
query_prealloc_size = 65536
query_alloc_block_size = 32768
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
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


then save and close file by hitting ctrl+x, it will prompt you to save the file as my.cnf and exit back to prompt

Now restart mysql server for my.cnf changes to take effect :)