【问题标题】:How can I set the max number of MySQL processes or threads?如何设置 MySQL 进程或线程的最大数量?
【发布时间】:2009-03-07 08:13:06
【问题描述】:

ps axuw| grep mysql 仅表示 MySQL 进程,但如果我运行 htop,我可以看到 10 行,每行都有一个单独的 PID。所以我想知道它们是否是由于某种原因我无法使用 ps 看到的线程或进程。

在我的开发机器上尝试将它们限制为两个是否有意义,我不需要许多客户端的并发访问。

在 Ubuntu 8.10 上运行的顺便说一句

【问题讨论】:

    标签: mysql multithreading process


    【解决方案1】:

    您可以像这样在 my.ini 中设置最大线程数:

    max_connections=2
    

    但是你可能还想设置这个:

    thread_cache_size=1
    

    线程缓存控制着它保持打开的数量,即使没有发生任何事情。

    【讨论】:

    • 在 devuan Beowulf 上,这些设置位于:/etc/mysql/mariadb.conf.d/50-server.cnf
    【解决方案2】:

    MySQL 确实使用线程,如果您运行 ps -eLfps 可以看到它们。

    也就是说,我不会担心 - 休眠线程几乎不使用任何资源,如果你对服务器限制太多,它一定会在稍后的某个时候回来咬你,当你忘记你的时候做到了。

    【讨论】:

      【解决方案3】:

      /etc/mysql/my.cnf 中几乎没有会影响内存使用的配置设置。 以下设置: key_buffer = 8M max_connections = 30 query_cache_size = 8M query_cache_limit = 512K thread_stack = 128K 应该会大大减少mysql的内存使用量。

      在此处阅读更多信息:http://opensourcehacker.com/2011/03/31/reducing-mysql-memory-usage-on-ubuntu-debian-linux/

      【讨论】:

      • 根据链接上的评论,此更改不会带来任何收益,正如引用的 Mysql consumes 21M before changes and 19M after
      【解决方案4】:

      我正在寻找 MySQL 配置的东西,然后我看到了这个问题....与 MySQL 无关,对吗?

      如果主要目的是查看自定义命令的结果,您可以使用以下语法的“watch”(在大多数 linux 系统上可用):

      watch "ps axuw| grep mysql"
      

      它将每2秒运行一次命令并显示输出,这是一个非常有用的命令。

      -> 查看文档/手册,了解它的强大之处;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-28
        • 2012-06-19
        • 1970-01-01
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多