我们的mysql系统每隔两天就“冻结”一次。
“冻结”我的意思是说:
有人能帮助我,通过给我一些指点,我能做些什么来找出问题? 我已经包括了关于我们设置的每个细节。
预先感谢您的帮助。 最大。
我们的系统参数和设置:
my.cnf中
# #MySQL数据库服务器configuration文件。 # #您可以将其复制到以下其中一个: # - “/etc/mysql/my.cnf”设置全局选项, # - “〜/ .my.cnf”设置用户特定的选项。 # #可以使用程序支持的所有长选项。 #使用--help运行程序以获得可用选项列表 #--print-defaults,看看它实际上会理解和使用。 # #说明见 #http://dev.mysql.com/doc/mysql/en/server-system-variables.html #这将被传递给所有的mysql客户端 #据报道,密码应该用蜱/引号括起来 #escpecially如果他们包含“#”字符... #请记住在更改套接字位置时编辑/etc/mysql/debian.cnf。 [客户] 端口= 3306 socket = /var/run/mysqld/mysqld.sock #这是一些特定程序的条目 #下面的值假设你至less有32M RAM #这正式被称为[safe_mysqld]。 目前这两个版本都被parsing。 [mysqld_safe的] socket = /var/run/mysqld/mysqld.sock 好= 0 的[mysqld] # # * 基本设置 # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock 端口= 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp language = / usr / share / mysql / english 跳过外部locking # #而不是跳过networking默认现在只能听 #localhost这是更加兼容,并不安全。 bind-address =我们的IP地址 # # * 微调 # key_buffer = 16M max_allowed_packet = 16M thread_stack = 256K thread_cache_size = 32 max_connections = 300 table_cache = 2048 #thread_concurrency = 4 #用于InnoDB表推荐的50%-80%可用内存 innodb_buffer_pool_size = 6G #20MB有时更大 innodb_additional_mem_pool_size = 20M #8M-16M适合大多数情况 innodb_log_buffer_size = 8M #禁用XA支持,因为我们不使用它 innodb-support-xa = 0 #1默认是100%安全,但2提供更好的性能 innodb_flush_log_at_trx_commit = 1 innodb_flush_method = O_DIRECT #innodb_thread_concurency = 8 #build议64M - 512M取决于服务器的大小 innodb_log_file_size = 512M #每个表格一个文件 innodb_file_per_table # #*查询cachingconfiguration # query_cache_limit = 1M query_cache_size = 16M #query_cache_type = 1 #query_cache_min_res_unit = 2K #join_buffer_size = 1M # #*logging和复制 # #两个位置都被cronjob旋转。 #请注意,这种日志types是一个性能杀手。 #从5.1开始,您可以在运行时启用日志! #general_log_file = /var/log/mysql/mysql.log #general_log = 1 # #错误日志logging到系统日志。 这是一个Debian改进:) # #在这里你可以看到特别长的查询 log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 日志查询,未使用的索引 # #以下内容可以用于重放备份日志或复制。 #server-id = 1 log_bin = /var/log/mysql/mysql-bin.log #警告:使用expire_logs_days没有bin_log崩溃服务器! 请参阅README.Debian! expire_logs_days = 10 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name # InnoDB默认启用,在/ var / lib / mysql /中有一个10MB的数据文件。 #阅读手册了解更多InnoDB相关选项。 有许多! #* InnoDB插件 #从MySQL 5.1.38开始,Oracle的InnoDB插件被包含在MySQL源代码中。 #它比内置的InnoDB存储引擎有许多改进和更好的性能。 #请阅读http://www.innodb.com/products/innodb_plugin/了解更多信息。 #取消注释以下两行来使用InnoDB插件。 ignore_builtin_innodb 插件负载= innodb的= ha_innodb_plugin.so # #*安全function # #也阅读手册,如果你想chroot! #chroot = / var / lib / mysql / # #为了生成SSL证书,我推荐OpenSSL GUI“tinyca”。 # #ssl-ca = / etc / mysql / cacert.pem #ssl-cert = / etc / mysql / server-cert.pem #ssl -key = / etc / mysql / server-key.pem [mysqldump的] 快 引号名称 max_allowed_packet = 16M [MySQL的] #no-auto-rehash#mysql更快的启动,但没有标签填充 [使用isamchk] key_buffer = 16M # #* NDB群集 # #请参阅/usr/share/doc/mysql-server-*/README.Debian了解更多信息。 # #以下configuration由NDB数据节点(ndbd进程)读取 #不是来自NDBpipe理节点(ndb_mgmd进程)。 # #[MYSQL_CLUSTER] #ndb-connectionstring = 127.0.0.1 # #*重要:可以覆盖这个文件的其他设置! # !includedir /etc/mysql/conf.d/
更新安装sysstat并configuration它以收集每分钟后的数据我有以下数据。 我用sar生成以下输出:
日志文件太大,所以coudn't进入它在这里,但上传到box.net。 链接是http://www.box.net/shared/xc6rh7qqob
第二次更新我们在后台启动了一个ping命令,解决了这个问题。 现在服务器从一周以后就开始工作了。 我们仍然不知道有什么问题。
你的服务器负载很重吗?
您是否检查过您的系统资源是否耗尽? 包sysstat是监视系统资源的好方法。
服务器在一段时间后会发生“解冻”,还是完全locking,直到重新启动?
我目前在自己的服务器上看到了类似的行为,所以我想知道更多问题,现在它有很多相似之处。
听起来像一个networking连接问题。 您已经从范围中删除了硬件,并且整个服务器都无法访问,如果不在日志中的某个级别上进行反思,则这不太可能成为系统问题。 如果服务器没有重新启动,或者日志中没有影响所有内容的问题 ,请关注networking。
本地磁盘或SAN / NAS的MySQL数据文件夹? 我在iSCSI目标上挂载了/ var / lib / mysql并且在大索引重新编译期间溢出了TOE缓冲区时,看到了类似的,莫名其妙的行为。