PDA

View Full Version : Server Optimization Help Please


j.d.p.
Sun 23rd Apr '06, 9:02am
Hi,

We have a new Dual Opteron 246 2GB RAM server that we should probably optimize for the vB site we have running. Any help would be appreciated :)

1. Is this on dedicated or shared virual server.
Dedicated

2. your server specs
cpu speed/type: dual Opteron 246
how much memory installed: 2GB RAM
hard drive type/configuration: 80GB EIDE
linux distributor or windows version: Red Hat Enterprise Linux ES3
apache/IIS version: Apache 2.0.46
PHP version: php 4.3.2
MySQL version: mysql 4.1.18

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

4. if possible how mysql was compiled/installed
Not sure. The default version that comes with ES3 was upgraded by the host.

5. your top stats

12:37:23 up 13 days, 38 min, 1 user, load average: 0.09, 0.11, 0.13
79 processes: 78 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 5.6% 0.0% 0.0% 0.0% 0.0% 0.1% 94.3%
cpu00 5.4% 0.0% 0.0% 0.0% 0.0% 0.2% 94.4%
cpu01 5.8% 0.0% 0.0% 0.0% 0.0% 0.0% 94.2%
Mem: 2057696k av, 2018348k used, 39348k free, 0k shrd, 142764k buff
1519164k actv, 320724k in_d, 25988k in_c
Swap: 1052216k av, 6824k used, 1045392k free 1649220k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
16029 apache 15 0 16704 16M 6468 S 1.1 0.8 0:09 0 httpd
16518 apache 16 0 16692 16M 6536 S 1.0 0.8 0:08 0 httpd
16048 apache 15 0 16660 16M 6468 S 0.7 0.8 0:11 0 httpd
16046 apache 15 0 17028 16M 6536 S 0.5 0.8 0:09 0 httpd
16036 apache 16 0 17164 16M 6460 S 0.4 0.8 0:08 1 httpd
16521 apache 16 0 17112 16M 6552 S 0.4 0.8 0:07 0 httpd
16527 apache 16 0 14096 13M 6432 S 0.4 0.6 0:06 1 httpd
16047 apache 15 0 14420 14M 6464 S 0.1 0.7 0:09 0 httpd
1 root 15 0 484 448 424 S 0.0 0.0 0:17 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 15 0 0 0 0 SW 0.0 0.0 0:00 1 keventd
5 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd/0
6 root 34 19 0 0 0 SWN 0.0 0.0 0:00 1 ksoftirqd/1
9 root 15 0 0 0 0 SW 0.0 0.0 0:01 1 bdflush
7 root 15 0 0 0 0 SW 0.0 0.0 1:06 1 kswapd
8 root 15 0 0 0 0 SW 0.0 0.0 2:44 1 kscand
10 root 15 0 0 0 0 SW 0.0 0.0 0:18 0 kupdated
11 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
15 root 15 0 0 0 0 SW 0.0 0.0 6:20 0 kjournald
70 root 25 0 0 0 0 SW 0.0 0.0 0:00 1 khubd
369 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
370 root 15 0 0 0 0 SW 0.0 0.0 0:29 0 kjournald
607 root 15 0 364 360 280 S 0.0 0.0 1:31 0 syslogd
611 root 15 0 108 96 44 S 0.0 0.0 0:00 0 klogd
621 root 15 0 244 236 180 S 0.0 0.0 0:32 1 irqbalance
640 root 15 0 576 480 336 S 0.0 0.0 0:06 1 sshd
654 root 15 0 676 632 556 S 0.0 0.0 0:03 1 xinetd
676 ntp 15 0 2572 2572 2196 S 0.0 0.1 0:24 0 ntpd
685 root 15 0 168 128 80 S 0.0 0.0 0:00 1 vsftpd
766 root 15 0 1052 620 384 S 0.0 0.0 1:31 0 sendmail
775 smmsp 15 0 780 332 236 S 0.0 0.0 0:00 0 sendmail
796 root 15 0 484 468 112 S 0.0 0.0 0:01 1 crond
813 daemon 15 0 196 168 124 S 0.0 0.0 0:00 1 atd


6. your mysql configuration variables located at /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_connections = 300
thread_cache_size = 4
query_cache_size = 64M
join_buffer_size = 1M
tmp_table_size = 64M
table_cache = 1800
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


7. MySQL stats from ssh telnet

+---------------------------------+-------------------------------------------+
| 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 | 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 | YES |
| 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 | 1044480 |
| 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 | 300 |
| max_delayed_threads | 20 |
| max_error_count | 64 |
| max_heap_table_size | 16777216 |
| max_insert_delayed_threads | 20 |
| max_join_size | 18446744073709551615 |
| 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 |
| 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 | 3910 |
| pid_file | /var/lib/mysql/www.servername.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 | 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 | |
| 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 | BST |
| table_cache | 1800 |
| table_type | MyISAM |
| thread_cache_size | 4 |
| thread_stack | 196608 |
| time_format | %H:%i:%s |
| time_zone | SYSTEM |
| tmp_table_size | 67108864 |
| tmpdir | |
| transaction_alloc_block_size | 8192 |
| transaction_prealloc_size | 4096 |
| tx_isolation | REPEATABLE-READ |
| version | 4.1.18-standard |
| version_comment | MySQL Community Edition - Standard (GPL) |
| version_compile_machine | i686 |
| version_compile_os | pc-linux-gnu |
| wait_timeout | 28800 |
+---------------------------------+-------------------------------------------+


+----------------------------+-----------+
| Variable_name | Value |
+----------------------------+-----------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Binlog_cache_disk_use | 0 |
| Binlog_cache_use | 0 |
| Bytes_received | 6586727 |
| Bytes_sent | 466636658 |
| 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 | 17320 |
| 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 | 0 |
| Com_dealloc_sql | 0 |
| Com_delete | 58 |
| Com_delete_multi | 0 |
| Com_do | 0 |
| Com_drop_db | 0 |
| Com_drop_function | 0 |
| Com_drop_index | 0 |
| Com_drop_table | 0 |
| 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 | 1020 |
| Com_insert_select | 2 |
| Com_kill | 0 |
| Com_load | 0 |
| Com_load_master_data | 0 |
| Com_load_master_table | 0 |
| Com_lock_tables | 0 |
| 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 | 50 |
| 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 | 8640 |
| Com_set_option | 3761 |
| Com_show_binlog_events | 0 |
| Com_show_binlogs | 5 |
| Com_show_charsets | 18 |
| Com_show_collations | 18 |
| Com_show_column_types | 0 |
| Com_show_create_db | 4 |
| Com_show_create_table | 2 |
| Com_show_databases | 10 |
| Com_show_errors | 0 |
| Com_show_fields | 3 |
| Com_show_grants | 3 |
| Com_show_innodb_status | 0 |
| Com_show_keys | 1 |
| 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 | 0 |
| Com_show_slave_hosts | 0 |
| Com_show_slave_status | 0 |
| Com_show_status | 5 |
| Com_show_storage_engines | 1 |
| Com_show_tables | 119 |
| Com_show_variables | 45 |
| 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 | 0 |
| Com_unlock_tables | 0 |
| Com_update | 5968 |
| Com_update_multi | 0 |
| Connections | 2176 |
| Created_tmp_disk_tables | 1450 |
| Created_tmp_files | 20 |
| Created_tmp_tables | 3039 |
| Delayed_errors | 0 |
| Delayed_insert_threads | 0 |
| Delayed_writes | 0 |
| Flush_commands | 1 |
| Handler_commit | 0 |
| Handler_delete | 109 |
| Handler_discover | 0 |
| Handler_read_first | 823 |
| Handler_read_key | 1576265 |
| Handler_read_next | 5191975 |
| Handler_read_prev | 2333385 |
| Handler_read_rnd | 13520 |
| Handler_read_rnd_next | 45157234 |
| Handler_rollback | 0 |
| Handler_update | 314041 |
| Handler_write | 27734 |
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 0 |
| Key_blocks_used | 7248 |
| Key_read_requests | 5412240 |
| Key_reads | 59172 |
| Key_write_requests | 2806 |
| Key_writes | 2371 |
| Max_used_connections | 14 |
| Not_flushed_delayed_rows | 0 |
| Open_files | 510 |
| Open_streams | 0 |
| Open_tables | 297 |
| Opened_tables | 303 |
| Qcache_free_blocks | 300 |
| Qcache_free_memory | 62179672 |
| Qcache_hits | 22020 |
| Qcache_inserts | 5646 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2986 |
| Qcache_queries_in_cache | 870 |
| Qcache_total_blocks | 2190 |
| Questions | 61244 |
| Rpl_status | NULL |
| Select_full_join | 20 |
| Select_full_range_join | 0 |
| Select_range | 673 |
| Select_range_check | 0 |
| Select_scan | 4040 |
| Slave_open_temp_tables | 0 |
| Slave_retried_transactions | 0 |
| Slave_running | OFF |
| Slow_launch_threads | 0 |
| Slow_queries | 2 |
| Sort_merge_passes | 8 |
| Sort_range | 739 |
| Sort_rows | 555386 |
| Sort_scan | 3172 |
| Table_locks_immediate | 21910 |
| Table_locks_waited | 81 |
| Threads_cached | 3 |
| Threads_connected | 1 |
| Threads_created | 29 |
| Threads_running | 1 |
| Uptime | 1359 |
+----------------------------+-----------+


Uptime: 1388 Threads: 1 Questions: 62415 Slow queries: 2 Opens: 303 Flush tables: 1 Open tables: 297 Queries per second avg: 44.968


mysqladmin Ver 8.41 Distrib 4.1.18, 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.1.18-standard
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 23 min 30 sec
Threads: 1 Questions: 63252 Slow queries: 2 Opens: 303 Flush tables: 1 Open tables: 297 Queries per second avg: 44.860


8. is your vB the only thing on the server?
Yes, it's just one site. The site uses vB quite heavily.

9. how many average and max concurrent users on your vB forum ? and what your cookie timeout is ?
Average 200 or so. Cookie timeout vB default 15 mins.

10. PHPinfo
see attached

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: KeepAlive Off
MaxKeepAliveRequests: MaxKeepAliveRequests 100
KeepAliveTimeout: KeepAliveTimeout 15
MinSpareServers: MinSpareServers 5
MaxSpareServers: MaxSpareServers 20
StartServers: StartServers 8
MaxClients: MaxClients 150
Maxrequestsperchild: MaxRequestsPerChild 1000

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

13. check to see if any files i.e. apache log files are hitting 2GB or 4GB max file size limits
none found

14. Post output from these 3 commands
uname -a
Linux www.servername.com (http://www.servername.com) 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:14:12 EST 2006 i686 athlon 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) 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
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 37
model name : AMD Opteron(tm) Processor 246
stepping : 1
cpu MHz : 1992.016
cache size : 1024 KB
physical id : 0
siblings : 1
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 lm 3dnowext 3dnow
bogomips : 3971.48
processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 37
model name : AMD Opteron(tm) Processor 246
stepping : 1
cpu MHz : 1992.016
cache size : 1024 KB
physical id : 1
siblings : 1
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 lm 3dnowext 3dnow
bogomips : 3971.48



Thanks :)

eva2000
Sun 23rd Apr '06, 11:17am
1. 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
2. Edit /etc/my.cnf and place the following mysql server settings in /etc/my.cnf and restart mysql server afterwards


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
safe-show-database
back_log = 50
skip-innodb
max_connections = 500
key_buffer = 64M
myisam_sort_buffer_size = 64M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1800
thread_cache_size = 384
wait_timeout = 90
connect_timeout = 10
tmp_table_size = 64M
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 = 96M
query_cache_type = 1
query_prealloc_size = 163840
query_alloc_block_size = 32768
default-storage-engine = MyISAM

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

[mysqld_safe]
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


3. Install APC Cache lastest version from http://pecl.php.net/package/APC. Read install guide at http://www.vbulletin.com/forum/showthread.php?t=165367 - please remove Zend Optimizer from php.ini before installing APC Cache

4. 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

5. Edit httpd.conf values from

KeepAlive: KeepAlive Off
MaxKeepAliveRequests: MaxKeepAliveRequests 100
KeepAliveTimeout: KeepAliveTimeout 15
MinSpareServers: MinSpareServers 5
MaxSpareServers: MaxSpareServers 20
StartServers: StartServers 8
MaxClients: MaxClients 150
Maxrequestsperchild: MaxRequestsPerChild 1000

to

KeepAlive: KeepAlive Off
MaxKeepAliveRequests: MaxKeepAliveRequests 100
KeepAliveTimeout: KeepAliveTimeout 5
MinSpareServers: MinSpareServers 15
MaxSpareServers: MaxSpareServers 20
StartServers: StartServers 15
MaxClients: MaxClients 200
Maxrequestsperchild: 10000

restart apache

might want to also update to Apache 2.0.55 later on

j.d.p.
Sun 23rd Apr '06, 11:35am
thanks very much for your help :)

eva2000
Mon 24th Apr '06, 7:55am
no probs let us know how the changes go for you :)