Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set CPU Affinity in PHP?

Pretty straightforward question - is there a way to set the CPU affinity via PHP? Any of the following will do:

  • Setting the affinity of the current process via a PHP call.
  • Setting the affinity of a specific PID via a PHP call.
  • As a last resort, setting the affinity of a specific PID via a command-line tool.

The only option I've found so far is the last one, using a tool named schedutils, and it seems it may only be supported on more recent kernels.

Schedutils

like image 991
rinogo Avatar asked Feb 16 '23 07:02

rinogo


1 Answers

The way to set the CPU affinity is with the sched_setaffinity C function. It's not available through the standard PHP API so you probably would have to write an extension.

An alternative is running taskset program through system. For example this binds the PHP process to cores 0 and 1:

system('taskset -cp 0,1 '.getmypid());
like image 95
Joni Avatar answered Feb 24 '23 06:02

Joni