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
    • 最新
    • 标签
主页 / server / 问题 / 49138
In Process
Tim
Tim
Asked: 2009-08-03 18:31:11 +0800 CST2009-08-03 18:31:11 +0800 CST 2009-08-03 18:31:11 +0800 CST

限制单个MYSQL进程的CPU

  • 772

这是一个相对简单的问题,希望有一个简单的答案。到目前为止,全能的谷歌在这方面并没有太大帮助。

我经营着一个相当活跃的网络托管业务。我有一个客户正在导入一个较大的数据库(vbulletin 到 ipb 的转换 ~ 4gb),它使用 PHP 脚本从 vbulletin 数据库中获取所有内容并将其放入 ipb 软件。

它在运行时基本上会削弱我的服务器。

现在我不想成为一个好主人,让他这样做,但不是因为我盒子上的其他用户。

有任何想法吗?

linux mysql colocation
  • 9 9 个回答
  • 11834 Views

9 个回答

  • Voted
  1. DisabledLeopard
    2009-08-03T18:39:32+08:002009-08-03T18:39:32+08:00

    您可以使用 [re]nice 来调整进程的优先级 - 这不会“限制”事情本身,但它会让服务器上的其他操作继续运行。命令 renice 将更改正在运行的进程的优先级 从 man renice "有用的优先级是:20(受影响的进程只有在系统中没有其他需要时才会运行),0(''base''调度优先级),任何消极的(使事情进展得非常快)。”

    renice N PID
    

    例如:renice +5 987 这将使进程 987 不利于调度。

    编辑:我不会 renice 你的 mysql 服务器进程,因为这肯定会影响其他用户 - 寻找 mysql 客户端进程并改为 renice。

    • 6
  2. Viky
    2009-08-03T20:00:01+08:002009-08-03T20:00:01+08:00

    如果有问题的资源是处理器,请尝试 cpulimit。cpulimit 是一个简单的程序,它试图限制进程的 cpu 使用率。

    参考

    http://webupd8.blogspot.com/2009/05/limit-cpu-usage-by-process-linux.html

    或者

    http://www.cyberciti.biz/faq/cpu-usage-limiter-for-linux/

    希望有帮助

    • 2
  3. resonator
    2009-08-03T18:36:40+08:002009-08-03T18:36:40+08:00

    您正在寻找的命令很好。

    • 1
  4. Coops
    2009-08-04T02:33:37+08:002009-08-04T02:33:37+08:00

    你能不能不使用每个帐户的资源限制来限制客户端可以建立的连接数,从而限制使用的系统资源。在 MySQL 5.0 中,您可以为单个帐户限制以下服务器资源:

    • 一个账户每小时可以发出的查询数
    • 一个账户每小时可以发布的更新数量
    • 一个账号每小时可以连接服务器的次数
    • 一个帐户可以同时连接到服务器的数量(从 MySQL 5.0.3 开始)
    • 1
  5. teleclimber
    2011-03-25T11:00:56+08:002011-03-25T11:00:56+08:00

    正如其他人所建议的那样,“很好”很高兴知道。

    但事情是这样的:如果你“很好”除了mysql服务器本身之外的任何东西,所有插入都将以Mysql的优先级完成,这是相当高的。

    例如,如果一个“nice”的 php 脚本以低优先级生成大量 INSERT 语句,然后将其发送到 mysql 服务器,则 mysql 服务器将以其典型的高优先级模式执行该插入,而不管 PHP 的“niceness”如何脚本。这是因为 Mysql 服务器是一个独立的进程,有它自己的 niceness 和 PRI。

    另一方面,如果你“很好” mysql 服务器本身,每个人的数据库操作都会变慢。不好,如其他答案所述。

    在我看来,最好的解决方案是让这个客户设置他的 PHP 脚本以进行少量插入(通过循环)并告诉他将 sleep() 语句放入循环中。插入将是完全优先级,但它们的大小是可管理的,然后 sleep 语句应该让其他进程运行并让数据库有机会赶上。

    如果您对 RAM 的使用很挑剔,您可以要求客户在 sleep 语句之前“取消设置”不需要的变量。

    如果客户从命令行运行此脚本,那么除了上述之外,“nicing”它当然是一个好主意。

    • 1
  6. A B
    2009-08-03T19:48:39+08:002009-08-03T19:48:39+08:00

    Nice 有利于让进程只使用未使用的资源。如果您真的想进一步限制它,那么 web/db 服务器用户的 'ulimit' 可能就是您要寻找的。

    编辑:毕竟这可能不是一个好主意。我认为设置 ulimit 会导致进程在超出限制时被杀死。

    • 0
  7. sybreon
    2009-08-03T20:03:10+08:002009-08-03T20:03:10+08:00

    这可能是未来需要考虑的事情——虚拟化。

    如果您使用 OpenVZ 或 VServer 之类的东西,您基本上可以限制每个虚拟服务器消耗的 CPU 时间量。您可以创建一个仅运行 MySQL 的虚拟服务器,然后对其进行封顶。其他方面变化不大。

    • 0
  8. Amit Kumar
    2010-08-19T06:40:15+08:002010-08-19T06:40:15+08:00

    http://dev.mysql.com/doc/refman/5.0/en/user-resources.html 看看这个

    • 0
  9. GioMac
    2011-12-04T12:28:23+08:002011-12-04T12:28:23+08:00

    对不起,迟到的答案:)

    这是您的解决方案: http: //docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html

    ei 使用控制组功能 (cgroups)

    • -2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve