PDA

View Full Version : 3 server config?


macrumors
Tue 28th Feb '06, 2:38am
Hi,

I was curious about moving to a 3 or more server config. What's the best way to accomplish this?

I've seen people post about 1) web 2) static images 3) db... but is this much better than just splitting the web/php evenly across two Web/PHP servers identically and having a 3rd DB server?

Also, I presume you can't keep anything in files (attachements) if you are splitting over two. Any other caveats?

arn

Jerry
Tue 28th Feb '06, 2:42am
Opposed to the how, I'd think about the why.

Is your need to move to more servers, load or throughput. Do you have lots of options or plugins that are killing the CPU or is the server bottle necking on serving data ?

macrumors
Tue 28th Feb '06, 2:48am
Opposed to the how, I'd think about the why.

Is your need to move to more servers, load or throughput. Do you have lots of options or plugins that are killing the CPU or is the server bottle necking on serving data ?

ah, good point.... my present (2 server) setup appears to be limited by server load on the php/web box. while my mysql server seems to be able to handle the same traffic fine.

I was sort of feeling out what the next step would be.

arn

eva2000
Tue 28th Feb '06, 3:05am
i think probably most scalable solution would be 1 mysql server backend connected to load balanced web servers, you can do it software or hardward load balancers and add more web servers as needed

but it all depends on your current loads http://www.vbulletin.com/forum/showthread.php?t=70117 ;) as to what specific hardware :)

macrumors
Wed 1st Mar '06, 3:58pm
i think probably most scalable solution would be 1 mysql server backend connected to load balanced web servers, you can do it software or hardward load balancers and add more web servers as needed

but it all depends on your current loads http://www.vbulletin.com/forum/showthread.php?t=70117 ;) as to what specific hardware :)

:)

Ok, well, my unique situation is that I run a relatively popular forum. we peak around 1000-1200 simultaneous visitors at a time during the day (default timeout). We can handle this without problems on our current setup. (PHP server and Mysql Server)

When there's a product annoucnement, or event, the number of people who hit the forums rises a lot for a period of a few hours. We peaked at 5800 simulteanous users last time, which caused the PHP Server loads to jump and lock out people.

These events probably happen 4-5 times a year. So I was trying to figure out how to handle that additional load. I can post you my current config setup numbers, but the numbers don't really reflect the traffic I'm trying to compensate for.

I realize that planning for peak-loads like this might be expensive in needing an extra server for this sole purpose... but I was feeling out the options.

will post my #s when I get back home
arn

Erwin
Thu 2nd Mar '06, 8:12am
Wow, for 5000 users online at once I would think that 3 servers won't be enough, depending on their specs of course.

eva2000
Fri 3rd Mar '06, 3:41am
well it would be starting point to provide some info http://www.vbulletin.com/forum/showthread.php?t=70117 so we have a base point to extrapolate your peak loads

macrumors
Sat 4th Mar '06, 1:07am
well it would be starting point to provide some info http://www.vbulletin.com/forum/showthread.php?t=70117 so we have a base point to extrapolate your peak loads

ok, here we go...

Dedicated Servers

PHP Server
Dual 2.6GHz Xeon
2GB of RAM
120GB IDE non RAID
CentOS 3.6 i686 (RedHat Exterprise basically http://www.centos.org/ )
Apache 1.3.34
PHP 4.4.0, eAccelerator 0.9.3

DATABASE Server
Dual 2.8 Xeon
4GB of RAM
72GB RAID 5 SCSI
CentOS 3.6 i686
mysql 4.0.25 (no innodb databases)

mysql installed via CPanel

PHP Top Stats

23:58:48 up 181 days, 23:25, 1 user, load average: 0.34, 0.42, 0.38
164 processes: 163 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 8.9% 0.0% 0.8% 0.0% 0.2% 0.1% 89.6%
cpu00 5.5% 0.0% 0.5% 0.0% 0.0% 0.1% 93.6%
cpu01 3.3% 0.0% 0.1% 0.0% 0.0% 0.1% 96.2%
cpu02 9.5% 0.0% 1.5% 0.1% 1.1% 0.1% 87.2%
cpu03 17.3% 0.0% 0.9% 0.0% 0.0% 0.0% 81.6%
Mem: 2055436k av, 1840460k used, 214976k free, 0k shrd, 189512k buff
900776k actv, 335636k in_d, 30152k in_c
Swap: 2048276k av, 115692k used, 1932584k free 789076k cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
23674 nobody 15 0 13872 13M 9132 S 1.2 0.6 0:38 2 httpd
31996 nobody 15 0 21532 20M 16144 S 0.9 1.0 97:35 2 httpd
25452 nobody 16 0 12172 11M 7712 S 0.9 0.5 0:08 3 httpd
32029 nobody 16 0 21352 20M 16056 S 0.6 1.0 96:18 3 httpd
22858 nobody 15 0 18008 17M 13260 S 0.6 0.8 14:54 3 httpd
25244 nobody 16 0 11812 11M 7396 S 0.5 0.5 0:11 2 httpd
26000 nobody 16 0 21952 21M 14104 S 0.4 1.0 53:03 1 httpd
2689 nobody 15 0 20680 20M 13880 S 0.4 0.9 31:00 3 httpd
14529 nobody 15 0 23588 22M 10256 S 0.4 1.1 8:01 3 httpd
4420 nobody 15 0 14484 13M 9888 S 0.4 0.6 4:55 2 httpd
23801 nobody 15 0 12588 12M 8144 S 0.4 0.6 0:49 1 httpd
23945 nobody 15 0 13664 13M 9232 S 0.3 0.6 0:34 1 httpd
10160 nobody 15 0 18840 18M 12396 S 0.2 0.9 17:29 0 httpd
32352 nobody 15 0 17100 16M 11976 S 0.2 0.8 6:09 2 httpd
25246 nobody 15 0 12812 12M 8184 S 0.2 0.6 0:11 0 httpd
21167 nobody 15 0 22880 22M 13220 S 0.1 1.1 22:07 0 httpd
4392 nobody 15 0 15740 15M 11052 S 0.1 0.7 4:41 2 httpd
23972 nobody 15 0 12164 11M 7696 S 0.1 0.5 0:16 2 httpd
26012 nobody 15 0 8616 8428 4428 S 0.1 0.4 0:00 3 httpd
1 root 15 0 108 80 56 S 0.0 0.0 4:26 1 init
2 root RT 0 0 0 0 SW 0.0 0.0 0:00 0 migration/0
3 root RT 0 0 0 0 SW 0.0 0.0 0:00 1 migration/1
4 root RT 0 0 0 0 SW 0.0 0.0 0:00 2 migration/2
5 root RT 0 0 0 0 SW 0.0 0.0 0:00 3 migration/3
6 root 15 0 0 0 0 SW 0.0 0.0 0:09 2 keventd
7 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd/0
8 root 34 19 0 0 0 SWN 0.0 0.0 0:00 1 ksoftirqd/1
9 root 34 19 0 0 0 SWN 0.0 0.0 0:00 2 ksoftirqd/2
10 root 34 19 0 0 0 SWN 0.0 0.0 0:00 3 ksoftirqd/3
13 root 15 0 0 0 0 SW 0.0 0.0 3:28 2 bdflush
11 root 15 0 0 0 0 SW 0.0 0.0 74:39 2 kswapd
12 root 15 0 0 0 0 SW 0.0 0.0 93:46 1 kscand
14 root 15 0 0 0 0 SW 0.0 0.0 13:12 1 kupdated
15 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
19 root 15 0 0 0 0 SW 0.0 0.0 23:19 3 kjournald
74 root 25 0 0 0 0 SW 0.0 0.0 0:00 1 khubd
1746 root 15 0 0 0 0 SW 0.0 0.0 25:20 0 kjournald
1747 root 15 0 0 0 0 SW 0.0 0.0 35:42 2 kjournald
1748 root 15 0 0 0 0 SW 0.0 0.0 27:33 1 kjourn


Database Server Top


23:59:04 up 181 days, 22:39, 1 user, load average: 0.10, 0.09, 0.09
218 processes: 217 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 1.4% 0.0% 0.5% 0.0% 0.2% 0.0% 97.7%
cpu00 0.1% 0.0% 0.0% 0.0% 0.7% 0.0% 99.0%
cpu01 0.5% 0.0% 0.7% 0.0% 0.0% 0.0% 98.6%
cpu02 3.1% 0.0% 0.5% 0.0% 0.0% 0.0% 96.2%
cpu03 1.9% 0.0% 0.7% 0.0% 0.1% 0.0% 97.0%
Mem: 4091536k av, 4040000k used, 51536k free, 0k shrd, 153860k buff
2949392k actv, 717008k in_d, 80740k in_c
Swap: 2096472k av, 0k used, 2096472k free 3198896k cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
15117 mysql 16 0 431M 431M 1652 S 0.4 10.8 4:47 3 mysqld
14075 mysql 15 0 431M 431M 1652 S 0.1 10.8 5:19 2 mysqld
14909 mysql 15 0 431M 431M 1652 S 0.1 10.8 5:16 1 mysqld
14914 mysql 15 0 431M 431M 1652 S 0.1 10.8 5:14 2 mysqld
1 root 15 0 440 440 392 S 0.0 0.0 2:13 1 init
2 root RT 0 0 0 0 SW 0.0 0.0 0:00 0 migration/0
3 root RT 0 0 0 0 SW 0.0 0.0 0:00 1 migration/1
4 root RT 0 0 0 0 SW 0.0 0.0 0:00 2 migration/2
5 root RT 0 0 0 0 SW 0.0 0.0 0:00 3 migration/3
6 root 15 0 0 0 0 SW 0.0 0.0 0:00 3 keventd
7 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd/0
8 root 34 19 0 0 0 SWN 0.0 0.0 0:00 1 ksoftirqd/1
9 root 34 19 0 0 0 SWN 0.0 0.0 0:00 2 ksoftirqd/2
10 root 34 19 0 0 0 SWN 0.0 0.0 0:00 3 ksoftirqd/3
13 root 15 0 0 0 0 SW 0.0 0.0 0:17 3 bdflush
11 root 15 0 0 0 0 SW 0.0 0.0 5:24 0 kswapd
12 root 15 0 0 0 0 SW 0.0 0.0 63:16 2 kscand
14 root 15 0 0 0 0 SW 0.0 0.0 7:53 1 kupdated
15 root 25 0 0 0 0 SW 0.0 0.0 0:00 2 mdrecoveryd
22 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 scsi_eh_0
25 root 15 0 0 0 0 SW 0.0 0.0 9:01 2 kjournald
80 root 24 0 0 0 0 SW 0.0 0.0 0:00 3 khubd
2194 root 15 0 0 0 0 SW 0.0 0.0 35:56 3 kjournald
2195 root 15 0 0 0 0 SW 0.0 0.0 3:49 1 kjournald
2617 root 15 0 452 452 388 S 0.0 0.0 10:27 1 irqbalance
2646 root 15 0 404 404 344 S 0.0 0.0 0:39 0 mdadm
2904 root 15 0 4580 4580 3304 S 0.0 0.1 5:36 0 httpd
3012 root 15 0 688 688 596 S 0.0 0.0 660:02 3 portsentry
3016 root 15 0 696 696 600 S 0.0 0.0 0:00 3 portsentry
3030 root 23 0 432 432 376 S 0.0 0.0 0:00 3 mingetty
3031 root 23 0 432 432 376 S 0.0 0.0 0:00 1 mingetty
3032 root 23 0 432 432 376 S 0.0 0.0 0:00 2 mingetty
3033 root 24 0 432 432 376 S 0.0 0.0 0:00 0 mingetty
3034 root 23 0 432 432 376 S 0.0 0.0 0:00 3 mingetty
3035 root 23 0 428 428 376 S 0.0 0.0 0:00 1 mingetty
17759 root 15 0 1876 1876 1576 S 0.0 0.0 0:12 1 pure-ftpd
17763 root 19 0 968 968 784 S 0.0 0.0 0:00 2 pure-authd
21084 mailnull 15 0 1884 1884 1544 S 0.0 0.0 0:16 2 exim
21089 mailnull 16 0 1844 1844 1512 S 0.0 0.0 0:00 1 exim



DB Server my.cnf


[mysqld]
safe-show-database
skip-innodb
max_connections = 1200
key_buffer = 96M
myisam_sort_buffer_size = 64M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 3M
table_cache = 1800
thread_cache_size = 128
wait_timeout = 300
connect_timeout = 10
tmp_table_size = 128M
read_rnd_buffer_size = 524288
bulk_insert_buffer_size = 8M
max_allowed_packet = 16M
max_connect_errors = 10000
query_cache_limit = 2M
query_cache_size = 192M
query_cache_type = 1
query_prealloc_size = 16384
query_alloc_block_size = 16384

[mysqld_safe]
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

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


mysql stats


+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| back_log | 50 |
| basedir | / |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set | latin1 |
| character_sets | latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 |
| concurrent_insert | ON |
| connect_timeout | 10 |
| convert_character_set | |
| datadir | /var/lib/mysql/ |
| default_week_format | 0 |
| delay_key_write | ON |
| delayed_insert_limit | 100 |
| delayed_insert_timeout | 300 |
| delayed_queue_size | 1000 |
| flush | OFF |
| flush_time | 0 |
| ft_boolean_syntax | + -><()~*:""&| |
| ft_min_word_len | 4 |
| ft_max_word_len | 254 |
| ft_max_word_len_for_sort | 20 |
| ft_stopword_file | (built-in) |
| have_bdb | NO |
| have_crypt | YES |
| have_innodb | DISABLED |
| have_isam | YES |
| have_raid | NO |
| have_symlink | YES |
| have_openssl | NO |
| have_query_cache | YES |
| init_file | |
| innodb_additional_mem_pool_size | 1048576 |
| innodb_autoextend_increment | 8 |
| innodb_buffer_pool_size | 8388608 |
| innodb_data_file_path | |
| innodb_data_home_dir | |
| innodb_file_io_threads | 4 |
| innodb_force_recovery | 0 |
| innodb_thread_concurrency | 8 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_fast_shutdown | ON |
| innodb_flush_method | |
| innodb_lock_wait_timeout | 50 |
| 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_mirrored_log_groups | 1 |
| innodb_max_dirty_pages_pct | 90 |
| innodb_max_purge_lag | 0 |
| innodb_table_locks | ON |
| interactive_timeout | 28800 |
| join_buffer_size | 2093056 |
| key_buffer_size | 100663296 |
| language | /usr/share/mysql/english/ |
| large_files_support | ON |
| license | GPL |
| local_infile | ON |
| locked_in_memory | OFF |
| log | OFF |
| log_update | OFF |
| log_bin | OFF |
| log_slave_updates | OFF |
| log_slow_queries | 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_connections | 1200 |
| max_connect_errors | 10000 |
| max_delayed_threads | 20 |
| max_insert_delayed_threads | 20 |
| max_heap_table_size | 16777216 |
| max_join_size | 4294967295 |
| max_relay_log_size | 0 |
| max_seeks_for_key | 4294967295 |
| max_sort_length | 1024 |
| max_user_connections | 0 |
| max_tmp_tables | 32 |
| max_write_lock_count | 4294967295 |
| myisam_max_extra_sort_file_size | 268435456 |
| myisam_max_sort_file_size | 2147483647 |
| myisam_repair_threads | 1 |
| myisam_recover_options | OFF |
| myisam_sort_buffer_size | 67108864 |
| net_buffer_length | 16384 |
| net_read_timeout | 30 |
| net_retry_count | 10 |
| net_write_timeout | 60 |
| new | OFF |
| open_files_limit | 6010 |
| pid_file | /var/lib/mysql/server.isidewalk.com.pid |
| log_error | |
| port | 3306 |
| protocol_version | 10 |
| query_alloc_block_size | 16384 |
| query_cache_limit | 2097152 |
| query_cache_size | 201326592 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 16384 |
| range_alloc_block_size | 2048 |
| read_buffer_size | 2093056 |
| read_only | OFF |
| read_rnd_buffer_size | 520192 |
| rpl_recovery_rank | 0 |
| server_id | 0 |
| slave_net_timeout | 3600 |
| skip_external_locking | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
| slow_launch_time | 2 |
| socket | /var/lib/mysql/mysql.sock |
| sort_buffer_size | 3145720 |
| sql_mode | 0 |
| table_cache | 1800 |
| table_type | MYISAM |
| thread_cache_size | 128 |
| thread_stack | 126976 |
| tx_isolation | REPEATABLE-READ |
| timezone | EST |
| tmp_table_size | 134217728 |
| tmpdir | /tmp/ |
| transaction_alloc_block_size | 8192 |
| transaction_prealloc_size | 4096 |
| version | 4.0.25-standard |
| version_comment | Official MySQL RPM |
| version_compile_os | pc-linux-gnu |
| wait_timeout | 300 |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| Aborted_clients | 959190 |
| Aborted_connects | 1729 |
| Bytes_received | 4024049905 |
| Bytes_sent | 852654757 |
| Com_admin_commands | 2121882 |
| Com_alter_table | 148 |
| Com_analyze | 0 |
| Com_backup_table | 0 |
| Com_begin | 4111383 |
| Com_change_db | 83063948 |
| Com_change_master | 0 |
| Com_check | 0 |
| Com_commit | 4108491 |
| Com_create_db | 7 |
| Com_create_function | 0 |
| Com_create_index | 210 |
| Com_create_table | 248 |
| Com_delete | 1106803 |
| Com_delete_multi | 0 |
| Com_drop_db | 1 |
| Com_drop_function | 0 |
| Com_drop_index | 0 |
| Com_drop_table | 64 |
| Com_flush | 233 |
| Com_grant | 507 |
| Com_ha_close | 0 |
| Com_ha_open | 0 |
| Com_ha_read | 0 |
| Com_insert | 14129680 |
| Com_insert_select | 31923 |
| Com_kill | 0 |
| Com_load | 0 |
| Com_load_master_data | 0 |
| Com_load_master_table | 0 |
| Com_lock_tables | 78166 |
| Com_optimize | 6 |
| Com_purge | 0 |
| Com_rename_table | 0 |
| Com_repair | 0 |
| Com_replace | 842910 |
| Com_replace_select | 0 |
| Com_reset | 0 |
| Com_restore_table | 0 |
| Com_revoke | 4 |
| Com_rollback | 2 |
| Com_savepoint | 0 |
| Com_select | 168298263 |
| Com_set_option | 25155 |
| Com_show_binlog_events | 0 |
| Com_show_binlogs | 19 |
| Com_show_create | 0 |
| Com_show_databases | 220 |
| Com_show_fields | 5649111 |
| Com_show_grants | 302 |
| Com_show_keys | 3294638 |
| Com_show_logs | 0 |
| Com_show_master_status | 0 |
| Com_show_new_master | 0 |
| Com_show_open_tables | 0 |
| Com_show_processlist | 2797685 |
| Com_show_slave_hosts | 0 |
| Com_show_slave_status | 0 |
| Com_show_status | 2782604 |
| Com_show_innodb_status | 0 |
| Com_show_tables | 1665 |
| Com_show_variables | 466 |
| Com_slave_start | 0 |
| Com_slave_stop | 0 |
| Com_truncate | 0 |
| Com_unlock_tables | 78166 |
| Com_update | 103370166 |
| Com_update_multi | 208 |
| Connections | 56783638 |
| Created_tmp_disk_tables | 866596 |
| Created_tmp_tables | 3302914 |
| Created_tmp_files | 50424 |
| Delayed_insert_threads | 0 |
| Delayed_writes | 0 |
| Delayed_errors | 0 |
| Flush_commands | 1 |
| Handler_commit | 0 |
| Handler_delete | 5536538 |
| Handler_read_first | 19920504 |
| Handler_read_key | 1562058407 |
| Handler_read_next | 983943410 |
| Handler_read_prev | 520423936 |
| Handler_read_rnd | 3497309907 |
| Handler_read_rnd_next | 2572902047 |
| Handler_rollback | 0 |
| Handler_update | 132970681 |
| Handler_write | 1855847053 |
| Key_blocks_used | 93763 |
| Key_read_requests | 2492613578 |
| Key_reads | 24163255 |
| Key_write_requests | 27157140 |
| Key_writes | 22541547 |
| Max_used_connections | 493 |
| Not_flushed_key_blocks | 0 |
| Not_flushed_delayed_rows | 0 |
| Open_tables | 1733 |
| Open_files | 1749 |
| Open_streams | 0 |
| Opened_tables | 17079 |
| Questions | 618347172 |
| Qcache_queries_in_cache | 44714 |
| Qcache_inserts | 146995930 |
| Qcache_hits | 168251168 |
| Qcache_lowmem_prunes | 11482289 |
| Qcache_not_cached | 21302043 |
| Qcache_free_memory | 126967432 |
| Qcache_free_blocks | 9898 |
| Qcache_total_blocks | 100287 |
| Rpl_status | NULL |
| Select_full_join | 640165 |
| Select_full_range_join | 740 |
| Select_range | 18459539 |
| Select_range_check | 25356 |
| Select_scan | 29155523 |
| Slave_open_temp_tables | 0 |
| Slave_running | OFF |
| Slow_launch_threads | 0 |
| Slow_queries | 100 |
| Sort_merge_passes | 25212 |
| Sort_range | 22231870 |
| Sort_rows | 3758274242 |
| Sort_scan | 4518450 |
| Table_locks_immediate | 416523674 |
| Table_locks_waited | 639297 |
| Threads_cached | 100 |
| Threads_created | 4523 |
| Threads_connected | 42 |
| Threads_running | 1 |
| Uptime | 4528940 |
+--------------------------+------------+
Uptime: 4528940 Threads: 42 Questions: 618347173 Slow queries: 100 Opens: 17079 Flush tables: 1 Open tables: 1733 Queries per second avg: 136.532
mysqladmin Ver 8.40 Distrib 4.0.25, for pc-linux-gnu on i686
Copyright (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.0.25-standard
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 52 days 10 hours 2 min 20 sec

Threads: 42 Questions: 618347173 Slow queries: 100 Opens: 17079 Flush tables: 1 Open tables: 1733 Queries per second avg: 136.532


8. VB is the main thing on the php server. MYSQL handles the vbulletin as well as well as db access for ad rotation software on a seperate server.

9. Cookie timeout default. avg 1000. typical max a day is probably 1200-1400. But have had peaks into 2000 on busy days. and special events goes into the 5000's.

10. http://forums.macrumors.com/phpinfo.php

11.

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 2
MinSpareServers 20
MaxSpareServers 40
StartServers 75
MaxClients 350

12. Vbulletin 3.5.4

13. No files > 2GB

PHP Server output

Linux server.untogether.com 2.4.21-32.0.1.ELsmp #1 SMP Wed May 25 14:26:33 EDT 2005 i686 i686 i386 GNU/Linux

core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 4
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) 7168
virtual memory (kbytes, -v) unlimited

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.66GHz
stepping : 9
cpu MHz : 2666.792
cache size : 512 KB
physical id : 0
siblings : 2
runqueue : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
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
bogomips : 5321.52

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.66GHz
stepping : 9
cpu MHz : 2666.792
cache size : 512 KB
physical id : 0
siblings : 2
runqueue : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
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
bogomips : 5321.52

processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.66GHz
stepping : 9
cpu MHz : 2666.792
cache size : 512 KB
physical id : 3
siblings : 2
runqueue : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
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
bogomips : 5321.52

processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.66GHz
stepping : 9
cpu MHz : 2666.792
cache size : 512 KB
physical id : 3
siblings : 2
runqueue : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
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
bogomips : 5321.52


mysql server output

Linux server.isidewalk.com 2.4.21-27.0.4.ELsmp #1 SMP Sat Apr 23 02:34:07 EEST 2005 i686 i686 i386 GNU/Linux

core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 4
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) 7168
virtual memory (kbytes, -v) unlimited

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.071
cache size : 1024 KB
physical id : 0
siblings : 2
runqueue : 0
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 nx lm
bogomips : 5570.56

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.071
cache size : 1024 KB
physical id : 0
siblings : 2
runqueue : 0
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 nx lm
bogomips : 5583.66

processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.071
cache size : 1024 KB
physical id : 6
siblings : 2
runqueue : 2
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 nx lm
bogomips : 5583.66

processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 1
cpu MHz : 2793.071
cache size : 1024 KB
physical id : 6
siblings : 2
runqueue : 2
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 nx lm
bogomips : 5583.66

eva2000
Sat 4th Mar '06, 8:05am
I can see more clearly now at least with the info that you will have probs with the current hardware during the peaks

If i guestimate 1,200-2,000 vB users online equating to ~500 mysql concurrent connections, then for nearly 6k you'd be looking at at least 1,000 to 1,500 mysql concurrent connections on the db server and most likely the web server would be overloaded in current state. Raid 5 on db server doesn't help either.

Do you have any special announcements or events coming up in near future ?

Have you checked apache and db server's mysql error logs after the crashes to see what error messages are logged ? I notice some very large vB forums i look into have very low default compiled max open files limits of 1024 (ulimit -aH output) or max descriptor limits which would probably cause problems when trying handle past 1000+ mysql concurrent connections (max_used_connections in mysqladmin extended-status output).

For large vB forums you should try to raise the max descriptors and max open files limits on the linux operating system - each flavour of linux would be different in their default set values as well as their methods of increasing them.

For example most new WHM/Cpanel CentOS 4.2 OSes i have seen have max open files limit between 4000-8000 approximately on 2.6.x linux kernels to handle more concurrent connections. Something to ask web hosts about prior to or after leasing/renting a server.

Basically, to handle your occassional peaks, i would say you would need at least 3-4x dual cpu servers i.e. 2-3 load balanced web servers connected to a beefy ram filled fast 15k scsi raid 10 based mysql server.

3-4x web servers each
dual opteron 250
3-4GB PC3200 REG ECC ddram
10k rpm scsi disks
2x gigabit network cards

db server
dual opteron 270 (dual core = 4 cpus)
4GB minimum to 8GB PC3200 REG ECC ddram
4x 15k rpm scsi raid 10 on hardware raid controller with 128-256MB memory cache
2x gigabit network cards

if you had a hardware load balancer you could start with db server and 1 web server, try an annoucement/special event test see how that fairs first then if needed add a 2nd web server, try another annoucement/special event test run, if needed add a 3rd just by plugging into hardware load balancer.

64bit linux os is a must to address past >4GB of memory i.e. Suse 64bit Enterprise linux

tricky part is to do with hardware and 64bit driver compatibility - some research would be needed especially for the hardware raid controllers and gigabit network cards etc

macrumors
Sat 4th Mar '06, 4:12pm
I
Do you have any special announcements or events coming up in near future ?


nothing soon. next scheduled one is prob in june, but sometimes they happen on a more frequent basis


Have you checked apache and db server's mysql error logs after the crashes to see what error messages are logged ?


The site didn't crash. The php server would hit the load limit and then just start locking people out (The server is too busy). MySQL seemed to handle it ok until this point.



For large vB forums you should try to raise the max descriptors and max open files limits on the linux operating system - each flavour of linux would be different in their default set values as well as their methods of increasing them.


I'll look in to this. Are you talking about the PHP server, MySQL server or both?

I think this is how I would do it: http://lists.centos.org/pipermail/centos/2005-February/002655.html


Basically, to handle your occassional peaks, i would say you would need at least 3-4x dual cpu servers i.e. 2-3 load balanced web servers connected to a beefy ram filled fast 15k scsi raid 10 based mysql server.


unfortunately that's not an option at my provider. and I'm not eager to switch providers, but are there any you know of offhand that offers these sort of configs?

arn

eva2000
Mon 6th Mar '06, 5:22am
not sure which providers would offer this, maybe ask at webhostingtalk.com

as to max descriptors/max open files limit this applies to both web and db servers