AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-12890

Ombongi Moraa's questions

Martin Hope
Ombongi Moraa
Asked: 2013-02-09 02:47:07 +0800 CST

mysql微调:open_tables,opened_tables

  • 1

我是数据库管理的新手,一直依靠论坛的建议和答案来帮助解决我的数据库挂起和太多的连接错误;我已经设法减少太多连接错误的频率,但我想在这个级别上消除它们。

根据 RolandoMySQLDBA 在 这篇文章中的回答,“如果 Open_tables 超过(Opened_tables / Uptime),我有理由担心......”

我的服务器规格是 2.0Mhz 和 484Mem;我有一个客户端,其每小时最多可处理 1000 个请求,并且主要处理他们的 2 个 InnoDB 表,这意味着一个小时内与两个表建立了大约 3000 个连接。

根据另一个论坛的建议,我对 my.cnf 进行了更改,它转化为:

[mysqld]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
skip-locking
key_buffer_size = 30M
max_allowed_packet = 1M
table_cache = 300
sort_buffer_size = 256K
read_buffer_size = 1M
read_rnd_buffer_size = 1M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
net_buffer_length = 12K
thread_stack = 1M
innodb_buffer_pool_size=60M
interactive_timeout=300
wait_timeout=300

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 48M
sort_buffer_size = 48M
#key_buffer_size = 256M
#sort_buffer_size = 256M
#read_buffer = 2M
#write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

当我根据帖子检查opened_tables、open_tables和uptime的参数时,我得到了这些值:

Uptime = 78018
Opened_tables = 1606999
Open tables = 300

所以:Opened_tables / Uptime=1606999/78018= 20.6

但是,我的 Opened_tables 变量在 3 小时内没有改变;它是一样的。

在这些更改之后,服务器负载在过去 24 小时内(晚上)发生了两次,我没有记录这段时间的 Opened_tables 值;但正如您从计算中注意到的那样,当许多客户端请求通过时,Opened_tables 值在昨晚急剧增加。

线程变量的输出是:

 Threads_cached                    | 7          |
| Threads_connected                 | 14         |
| Threads_created                   | 306        |
| Threads_running                   | 2 

我从 mysql 文档(http://dev.mysql.com/doc/refman/5.5/en/server-status-variables.html#statvar_Threads_connected)中注意到我需要增加 thread_cache_size 。

我的 max_connections 是默认值;

所以基本上:

  1. 我需要增加thread_cache_size;
  2. 我需要增加 table_open_cache (但非常大的值也会导致不可靠性)

在发布此消息时,我刚刚遇到“连接过多”错误,无法获得 Opened_tables 和 Open_tables 的结果;另外,我无法通过另一个会话登录到服务器;我自动断开连接。

问题:

  1. 我应该使用什么方法来近似
    thread_cache_size 和 table_open_cache 的值?

  2. 我的 max_connections 是否太低?如何计算最佳 max_connections 设置?

  3. 如何减少“连接过多”错误(不创建另一个用户并让该用户成为建立连接的用户而不是 root)?

    注意:不,我现在无法升级内存。谢谢。现在我处理这个问题的唯一方法是关闭端口表单传入消息(这不完全符合道德)或重新启动服务器以处理系统中的待处理消息并释放内存。


在我现在 有太多的连接错误之后- 我通过阻止接收端口解决了这个问题;我的变量现在是:

Opened_tables = 1970498 
Open_tables =300

| Threads_cached                    | 6          |
| Threads_connected                 | 15         |
| Threads_created                   | 437        |
| Threads_running                   | 2          |

任何我明智有效地处理这个问题的建议将不胜感激。提前致谢。

[3]:

mysql max-connections
  • 1 个回答
  • 5304 Views
Martin Hope
Ombongi Moraa
Asked: 2012-09-25 05:08:28 +0800 CST

mysql show processlist 挂起的进程;

  • 1

我们需要将服务从一个托管模式转移到另一个,因此我们必须将一些文件从主服务器复制到备份服务器,以便这些服务现在可以在新位置的备份服务器上运行。

系统管理员复制了 mysql 数据库。但是,由于移动服务器,创建的用户不起作用。我无法从移动服务器后创建的数据库用户登录。

当我做一个显示进程列表时;我看到一些已经挂了很长时间的两个进程;我相信它们与复制过程有关。

即使我尝试更改任何原始用户的密码,他们也受到影响,现在无法登录。

mysql> show processlist;
+-------+-------------+-----------+-------+---------+---------+-----------------------------------------------------------------------+------------------+
| Id    | User        | Host      | db    | Command | Time    | State                                                                 | Info             |
+-------+-------------+-----------+-------+---------+---------+-----------------------------------------------------------------------+------------------+
|     1 | system user |           | NULL  | Connect | 2156939 | Connecting to master                                                  | NULL             |
|     2 | system user |           | NULL  | Connect | 2156939 | Has read all relay log; waiting for the slave I/O thread to update it | NULL             |

我不知道这些进程是否会影响我的登录。但我需要清理它们只是因为它们很烦人。

有人请告诉我如何

  1. 摆脱这两个过程;
  2. 解决我的新用户无法登录的可能原因。

谢谢。

mysql
  • 1 个回答
  • 3726 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve