【问题标题】:Set CPU Affinity in PHP?在 PHP 中设置 CPU 关联性?
【发布时间】:2013-06-09 17:51:58
【问题描述】:

非常简单的问题 - 有没有办法通过 PHP 设置 CPU 亲和力?以下任何一项都可以:

  • 通过 PHP 调用设置当前进程的亲和性。
  • 通过 PHP 调用设置特定 PID 的亲和性。
  • 作为最后的手段,通过命令行工具设置特定 PID 的亲和性。

到目前为止,我发现的唯一选项是最后一个选项,它使用了一个名为 schedutils 的工具,而且它似乎只在更新的内核上受支持。

Schedutils

【问题讨论】:

  • 你为什么要这样做?
  • 为什么 PHP 会以这种方式与 Web 服务器搞混?
  • 我发现我们服务器上某些长时间运行的任务会占用资源。我正在探索不同的选项来有效地“优化”一个 PHP 脚本(显然,除了“nice”和 CLI PHP :))。如果您有其他想法,我很想听听!

标签: php linux process affinity


【解决方案1】:

设置 CPU 亲和性的方法是使用 sched_setaffinity C 函数。它不能通过标准的 PHP API 获得,因此您可能需要编写一个扩展。

另一种方法是通过system 运行taskset 程序。例如,这会将 PHP 进程绑定到核心 0 和 1:

system('taskset -cp 0,1 '.getmypid());

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 2011-12-13
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2021-04-23
    • 2016-12-08
    相关资源
    最近更新 更多