Обсуждаем оптимизацию сервера MySQL для Netup UTM5
Обсуждаем оптимизацию сервера MySQL для Netup UTM5
В этой ветке хочу обсудить настройки, при помощи которых можно выжать максимальную производительность из связки MySQL Server + utm_core.
У самого стоит связка:
БД UTM5 - MySQL 4.1.20 (HP DL380G4, 2xXeon3.4Ghz, 4Gb RAM DDRII PC2-3200R, 5x300Gb SCSI 10.000rpm RAID 5).
Хочу добавить еще 2 GB DDRII PC-3200R
Ядро UTM5 - 5.2.002 (HP ML350G4, Xeon 3.0Ghz, 2Gb RAM DDR 3200, 3x73Gb SCSI 10.000rpm RAID 5).
Ndsad + UTM_rfw - (HP DL360G4p, Xeon 3.4Ghz, 2Gb RAM DDRII PC2-3200, 2x73Gb 10.000rpm RAID 1).
Честно говоря скорость работы оставляет желать лучшего. Конечно, понятно, что сама БД UTM5 не особо оптимизирована, но однако ...
В месяц в биллинг попадает порядка 25Тб трафика.
Может кто-нибудь даст какие-нибудь дельные советы.
Заранее спасибо.
UTM5.CFG
database_type=mysql
database=UTM5
database_host=ХХХ
database_name=UTM5
database_login=ХХХ
database_password=ХХХ
database_port=3306
dbcount=15 - Какую цифру здесь лучше выставить?
urfa_bind_host=0.0.0.0
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-card.so
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-utils.so
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-graph.so
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-std.so
nfbuffer_port=9996
nfbuffer_bufsize=10485760
log_level=10
log_file_main=/usr/netup/utm5/log/main.log
log_file_debug=/usr/netup/utm5/log/debug.log
log_file_critical=/usr/netup/utm5/log/critical.log
log_file_verificator=/usr/netup/utm5/log/verificator.log
my.cnf
[mysqld]
default-character-set=latin1
old_passwords=1
port = 3306
socket = /tmp/mysql.sock
back_log = 50
max_connections = 100
max_connect_errors = 10
table_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
default_table_type = MYISAM
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=dbs-bin
log_slow_queries
long_query_time = 2
log_long_format
#*** MyISAM Specific options
key_buffer_size = 32M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
# *** BDB Specific options ***
skip-bdb
# *** INNODB Specific options ***
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G
innodb_data_home_dir = /noc/db/mysql/
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = /noc/db/mysql/
innodb_log_arch_dir = /noc/db/mysql/
innodb_file_io_threads = 4
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_flush_log_at_trx_commit=1
sync_binlog=1
innodb_safe_binlog=1
[mysqldump]
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[myisamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
У самого стоит связка:
БД UTM5 - MySQL 4.1.20 (HP DL380G4, 2xXeon3.4Ghz, 4Gb RAM DDRII PC2-3200R, 5x300Gb SCSI 10.000rpm RAID 5).
Хочу добавить еще 2 GB DDRII PC-3200R
Ядро UTM5 - 5.2.002 (HP ML350G4, Xeon 3.0Ghz, 2Gb RAM DDR 3200, 3x73Gb SCSI 10.000rpm RAID 5).
Ndsad + UTM_rfw - (HP DL360G4p, Xeon 3.4Ghz, 2Gb RAM DDRII PC2-3200, 2x73Gb 10.000rpm RAID 1).
Честно говоря скорость работы оставляет желать лучшего. Конечно, понятно, что сама БД UTM5 не особо оптимизирована, но однако ...
В месяц в биллинг попадает порядка 25Тб трафика.
Может кто-нибудь даст какие-нибудь дельные советы.
Заранее спасибо.
UTM5.CFG
database_type=mysql
database=UTM5
database_host=ХХХ
database_name=UTM5
database_login=ХХХ
database_password=ХХХ
database_port=3306
dbcount=15 - Какую цифру здесь лучше выставить?
urfa_bind_host=0.0.0.0
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-card.so
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-utils.so
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-graph.so
urfa_lib_file=/usr/netup/utm5/lib/utm5_core/liburfa-std.so
nfbuffer_port=9996
nfbuffer_bufsize=10485760
log_level=10
log_file_main=/usr/netup/utm5/log/main.log
log_file_debug=/usr/netup/utm5/log/debug.log
log_file_critical=/usr/netup/utm5/log/critical.log
log_file_verificator=/usr/netup/utm5/log/verificator.log
my.cnf
[mysqld]
default-character-set=latin1
old_passwords=1
port = 3306
socket = /tmp/mysql.sock
back_log = 50
max_connections = 100
max_connect_errors = 10
table_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
default_table_type = MYISAM
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=dbs-bin
log_slow_queries
long_query_time = 2
log_long_format
#*** MyISAM Specific options
key_buffer_size = 32M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
# *** BDB Specific options ***
skip-bdb
# *** INNODB Specific options ***
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G
innodb_data_home_dir = /noc/db/mysql/
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = /noc/db/mysql/
innodb_log_arch_dir = /noc/db/mysql/
innodb_file_io_threads = 4
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_flush_log_at_trx_commit=1
sync_binlog=1
innodb_safe_binlog=1
[mysqldump]
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[myisamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
Основное это кол-во памяти и скорость дисков на машине с базой.
У меня например
Cpu0 : 0.0% us, 0.3% sy, 0.0% ni, 93.0% id, 6.6% wa, 0.0% hi, 0.0% si
Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu2 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu3 : 0.0% us, 0.0% sy, 0.0% ni, 99.0% id, 1.0% wa, 0.0% hi, 0.0% si
Mem: 8310124k total, 8024724k used, 285400k free, 42860k buffers
Swap: 3068372k total, 0k used, 3068372k free, 5722996k cached
При этом
28903 mysql 16 0 2042m 2.0g 5856 S 0.0 25.1 1481:06 mysqld
7791 root 15 0 352m 70m 9156 S 0.0 0.9 8:29.39 utm5_core
Других прожорливых процессов нет
Я думаю, что даже 16 гигов мозга лишними не будут
Весь биллинг на одной машине
Да, работа в обычном режиме, когда деталка делается или бэкап нагрузка значительно возрастает.
Размер базы около 10Гигов.
Из какой-то доки по MySql:
"процент рабочей нагрузки процессора меньше 70%, это значит, что объем рабочей нагрузки в основном сводится к обращениям к диску"
У меня например
Cpu0 : 0.0% us, 0.3% sy, 0.0% ni, 93.0% id, 6.6% wa, 0.0% hi, 0.0% si
Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu2 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu3 : 0.0% us, 0.0% sy, 0.0% ni, 99.0% id, 1.0% wa, 0.0% hi, 0.0% si
Mem: 8310124k total, 8024724k used, 285400k free, 42860k buffers
Swap: 3068372k total, 0k used, 3068372k free, 5722996k cached
При этом
28903 mysql 16 0 2042m 2.0g 5856 S 0.0 25.1 1481:06 mysqld
7791 root 15 0 352m 70m 9156 S 0.0 0.9 8:29.39 utm5_core
Других прожорливых процессов нет
Я думаю, что даже 16 гигов мозга лишними не будут
Весь биллинг на одной машине
Да, работа в обычном режиме, когда деталка делается или бэкап нагрузка значительно возрастает.
Размер базы около 10Гигов.
Из какой-то доки по MySql:
"процент рабочей нагрузки процессора меньше 70%, это значит, что объем рабочей нагрузки в основном сводится к обращениям к диску"