title: Lots of mysql Sleep processes
body: <p>I am still having trouble with my mysql server. It seems that since i optimize it, the tables were growing and now sometimes is very slow again. I have no idea of how to optimize more.</p>
  
  <p>mySQL server has 48GB of RAM and mysqld is using about 8, most of the tables are innoDB.</p>
  
  <p>Site has about 2000 users online. I also run explain on every query and every one of them is indexed.</p>
  
  <p>mySQL processes:
  <a href="http://www.pik.ba/mysqlStanje.php" rel="noreferrer">http://www.pik.ba/mysqlStanje.php</a></p>
  
  <p>my.cnf:</p>
  
  <pre><code># 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/
  </code></pre>