Оптимизация выделенного сервера (диски забиты, mysql тормозит). Как решить?
Итак, есть веб-сервер на котором несколько проектов. Периодически сайты медленно работают. MySQL чудит, то не остановишь, то на бекапе виснет наглухо. Короче странные вещи происходят. Админ предложил перевести базы в оперативную память целиком и раз в час делать бекап. Плюс он говорит что все дело в SATA дисках, мол надо RAID10 + SSD под базу. Я сам не админ, поэтому не знаю верно ли это решение.
Конфиг такой:
2xXeon Six Core 2.40 GHz (E5645)
64Gb DDR3 REG ECC RAM
2x2Тb HDD SAТА RAID1
IPMI
# free -m
total used free shared buffers cached
Mem: 64417 63296 1121 8833 3052 44678
-/+ buffers/cache: 15564 48852
Swap: 1047 90 957
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_u9932-LogVol02
689G 64G 591G 10% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/md0 20G 110M 19G 1% /boot
/dev/mapper/vg_u9932-LogVol03
435G 203G 211G 49% /home
/dev/mapper/vg_u9932-LogVol01
689G 71M 654G 1% /var/www
tmpfs 1.0G 282M 743M 28% /var/tmp
tmpfs 12G 8.6G 3.2G 74% /var/mysql
atop: imgur.com/qtequQI (upd: после 4 минут работы imgur.com/kZMEKzk )
top: imgur.com/wR94IFE
dstat: imgur.com/bfjkxlQ
my.cnf
[client] port = 3306 socket = /var/lib/mysqld/mysqld.sock default-character-set = utf8 [mysqld_safe] nice = 0 socket = /var/lib/mysqld/mysqld.sock [mysqld] # Basic mysql server configuration user = mysql port = 3306 basedir = /usr datadir = /var/mysql socket = /var/lib/mysqld/mysqld.sock skip-external-locking default-storage-engine = innodb pid-file = /var/run/mysqld/mysqld.pid transaction-isolation = READ-COMMITTED max_allowed_packet = 128M myisam-recover = BACKUP expire_logs_days = 10 max_binlog_size = 512M # Cache parameters query_cache_size = 128M table_open_cache = 4096 thread_cache_size = 32 key_buffer = 64M thread_stack = 512K join_buffer_size = 16M sort_buffer_size = 16M # Parameters for temporary tables tmpdir = /var/tmp max_heap_table_size = 128M tmp_table_size = 512M # InnoDB parameters innodb_file_per_table innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 2 innodb_log_file_size = 512M innodb_flush_method = O_DIRECT innodb_data_home_dir = /var/mysql/ innodb_log_group_home_dir = /var/mysql/ # Database charset parameters character-set-server = utf8 collation-server = utf8_unicode_ci #init-connect = «SET NAMES utf8 COLLATE utf8_unicode_ci» skip-character-set-client-handshake skip-name-resolve [mysqldump] quick quote-names max_allowed_packet = 16M default-character-set = utf8 [mysql] [isamchk] key_buffer = 16M
Конфиг такой:
2xXeon Six Core 2.40 GHz (E5645)
64Gb DDR3 REG ECC RAM
2x2Тb HDD SAТА RAID1
IPMI
# free -m
total used free shared buffers cached
Mem: 64417 63296 1121 8833 3052 44678
-/+ buffers/cache: 15564 48852
Swap: 1047 90 957
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_u9932-LogVol02
689G 64G 591G 10% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/md0 20G 110M 19G 1% /boot
/dev/mapper/vg_u9932-LogVol03
435G 203G 211G 49% /home
/dev/mapper/vg_u9932-LogVol01
689G 71M 654G 1% /var/www
tmpfs 1.0G 282M 743M 28% /var/tmp
tmpfs 12G 8.6G 3.2G 74% /var/mysql
atop: imgur.com/qtequQI (upd: после 4 минут работы imgur.com/kZMEKzk )
top: imgur.com/wR94IFE
dstat: imgur.com/bfjkxlQ
my.cnf
[client] port = 3306 socket = /var/lib/mysqld/mysqld.sock default-character-set = utf8 [mysqld_safe] nice = 0 socket = /var/lib/mysqld/mysqld.sock [mysqld] # Basic mysql server configuration user = mysql port = 3306 basedir = /usr datadir = /var/mysql socket = /var/lib/mysqld/mysqld.sock skip-external-locking default-storage-engine = innodb pid-file = /var/run/mysqld/mysqld.pid transaction-isolation = READ-COMMITTED max_allowed_packet = 128M myisam-recover = BACKUP expire_logs_days = 10 max_binlog_size = 512M # Cache parameters query_cache_size = 128M table_open_cache = 4096 thread_cache_size = 32 key_buffer = 64M thread_stack = 512K join_buffer_size = 16M sort_buffer_size = 16M # Parameters for temporary tables tmpdir = /var/tmp max_heap_table_size = 128M tmp_table_size = 512M # InnoDB parameters innodb_file_per_table innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 2 innodb_log_file_size = 512M innodb_flush_method = O_DIRECT innodb_data_home_dir = /var/mysql/ innodb_log_group_home_dir = /var/mysql/ # Database charset parameters character-set-server = utf8 collation-server = utf8_unicode_ci #init-connect = «SET NAMES utf8 COLLATE utf8_unicode_ci» skip-character-set-client-handshake skip-name-resolve [mysqldump] quick quote-names max_allowed_packet = 16M default-character-set = utf8 [mysql] [isamchk] key_buffer = 16M
Похожие публикации
Как защитить сервер от нагрузки?
Помогите с оптимизацией VPS сервера
Как снизить нагрузку на сервер?
Нет комментариев