2010-02-12 2 views
7

У меня по-прежнему возникают проблемы с моим сервером mysql. Кажется, что, так как я оптимизировал его, таблицы росли, а теперь иногда очень медленно. Я понятия не имею, как оптимизировать больше.Множество mysql Спящие процессы

mySQL-сервер имеет 48 ГБ оперативной памяти, а mysqld использует около 8, большинство таблиц - innoDB.

Сайт имеет около 2000 пользователей онлайн. Я также запускаю объяснение по каждому запросу, и каждый из них индексируется.

MySql процессы: http://www.pik.ba/mysqlStanje.php

my.cnf: "ВЫБРАТЬ имя_таблицы *"

# The MySQL database server configuration file. 
# 
# You can copy this to one of: 
# - "/etc/mysql/my.cnf" to set global options, 
# - "~/.my.cnf" to set user-specific options. 
# 
# One can use all long options that the program supports. 
# Run program with --help to get a list of available options and with 
# --print-defaults to see which it would actually understand and use. 
# 
# For explanations see 
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html 

# This will be passed to all mysql clients 
# It has been reported that passwords should be enclosed with ticks/quotes 
# escpecially if they contain "#" chars... 
# Remember to edit /etc/mysql/debian.cnf when changing the socket location. 
[client] 
port   = 3306 
socket   = /var/run/mysqld/mysqld.sock 

# Here is entries for some specific programs 
# The following values assume you have at least 32M ram 

# This was formally known as [safe_mysqld]. Both versions are currently parsed. 
[mysqld_safe] 
socket   = /var/run/mysqld/mysqld.sock 
nice   = 0 

[mysqld] 
# 
# * Basic Settings 
# 
user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
language  = /usr/share/mysql/english 
skip-external-locking 
# 
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address   = 10.100.27.30 
# 
# * Fine Tuning 
# 
key_buffer    = 64M 
key_buffer_size = 512M 
max_allowed_packet  = 16M 
thread_stack   = 128K 
thread_cache_size  = 8 
# This replaces the startup script and checks MyISAM tables if needed 
# the first time they are touched 
myisam-recover   = BACKUP 
max_connections  = 1000 
table_cache   = 1000 
join_buffer_size  = 2M 
tmp_table_size   = 2G 
max_heap_table_size  = 2G 
innodb_buffer_pool_size = 3G 
innodb_additional_mem_pool_size = 128M 
innodb_log_file_size = 100M 
log-slow-queries  = /var/log/mysql/slow.log 
sort_buffer_size  = 5M 
net_buffer_length  = 5M 
read_buffer_size  = 2M 
read_rnd_buffer_size = 12M 
thread_concurrency  = 10 
ft_min_word_len = 3 
#thread_concurrency  = 10 
# 
# * Query Cache Configuration 
# 
query_cache_limit  = 1M 
query_cache_size  = 512M 
# 
# * Logging and Replication 
# 
# Both location gets rotated by the cronjob. 
# Be aware that this log type is a performance killer. 
#log   = /var/log/mysql/mysql.log 
# 
# Error logging goes to syslog. This is a Debian improvement :) 
# 
# Here you can see queries with especially long duration 
#log_slow_queries  = /var/log/mysql/mysql-slow.log 
#long_query_time = 2 
#log-queries-not-using-indexes 
# 
# The following can be used as easy to replay backup logs or for replication. 
# note: if you are setting up a replication slave, see README.Debian about 
#  other settings you may need to change. 
#server-id    = 1 
#log_bin      = /var/log/mysql/mysql-bin.log 
expire_logs_days  = 10 
max_binlog_size   = 100M 
#binlog_do_db   = include_database_name 
#binlog_ignore_db  = include_database_name 
# 
# * BerkeleyDB 
# 
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12. 
skip-bdb 
# 
# * InnoDB 
# 
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. 
# Read the manual for more InnoDB related options. There are many! 
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB. 
#skip-innodb 
# 
# * Security Features 
# 
# Read the manual, too, if you want chroot! 
# chroot = /var/lib/mysql/ 
# 
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". 
# 
# ssl-ca=/etc/mysql/cacert.pem 
# ssl-cert=/etc/mysql/server-cert.pem 
# ssl-key=/etc/mysql/server-key.pem 



[mysqldump] 
quick 
quote-names 
max_allowed_packet  = 16M 

[mysql] 
#no-auto-rehash # faster start of mysql but no tab completition 

[isamchk] 
key_buffer    = 16M 

# 
# * NDB Cluster 
# 
# See /usr/share/doc/mysql-server-*/README.Debian for more information. 
# 
# The following configuration is read by the NDB Data Nodes (ndbd processes) 
# not from the NDB Management Nodes (ndb_mgmd processes). 
# 
# [MYSQL_CLUSTER] 
# ndb-connectstring=127.0.0.1 


# 
# * IMPORTANT: Additional settings that can override those from this file! 
# The files must end with '.cnf', otherwise they'll be ignored. 
# 
!includedir /etc/mysql/conf.d/ 
+0

только из контекста, как вы генерировать этот MySql процесс PHP страницу? – JPro

+0

Пожалуйста, также опубликуйте SHOW CREATE TABLE здесь, потому что нам нужно увидеть, насколько оптимальны ваши индексы –

+0

Можете ли вы дать нам больше информации о сервере в целом? Виртуализированных? Операционная система, своп, статистика ввода-вывода, статистика сети и т. Д. Настройка приложения. –

ответ

4

я освежил в списке процессов вашей странице пару раз и довольно часто запросы я видели включенные

Вам нужен каждый столбец из этой таблицы? Если бы это не помогло.

Если ваш сервер не привязан к ресурсам, я бы не стал беспокоиться о спальных процессах. Обычно они не потребляют много ресурсов. Однако, если вы действительно хотите, чтобы вручную установить количество времени, прежде чем они будут убиты вы можете сделать следующее в вашем файле конфигурации:

[mysqld] 
wait_timeout=20 
Смежные вопросы