Заказал VPS. CentOS 7.3x64. Залил один сайт ( на котором нулевой трафик) и увидел такую картину. Куча процессов mysql и больше половины съеденой памяти
Мне кажется это не нормально. Что можно сделать?
1) это не куча процессов, это куча потоков
2) это вполне нормально, бд использует память для кеширования данных, чтобы реже дёргать диск и быстрее отвечать. максимальный размер настраивается в конфигах
Но из параметров я так и не увидел какой отвечает за количество потребляемой памяти. Такая картина стала после обновления с 5.5 на 5.6 . Я до этого не видел, чтобы MySql столько кушал, поэтому и спросил. изменение параметра innodb_buffer_pool_size не влияет на кол-во занятой памяти. Если Mysql столько съел, то что тогда останется под работу php?
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=0
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-external-locking
max_allowed_packet=16M
key_buffer=16M
innodb_buffer_pool_size=512M
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=0
thread_stack=128K
thread_cache_size=128
myisam-recover=BACKUP
max_connections=128
table_cache=32
query_cache_limit=1M
query_cache_size=4M
slow_query_log=/var/log/mysql/mysql-slow.log
long_query_time=1
expire_logs_days=10
max_binlog_size=100M
[mysqldump]
quick
quote-names
max_allowed_packet=16M
Павел: ну так у вас под буфер innodb выделено 512мб, оно их и отъедает честно. уменьшите значение до 256/128мб по своему усмотрению, только учитывайте что тогда база может медленнее работать т.к. не хватит памяти закешировать всё.