https://github.com/vangelov/node-cpulimit
Limit the CPU usage of a process.
https://github.com/vangelov/node-cpulimit
cpu cpu-limit javascript nodejs
Last synced: 3 months ago
JSON representation
Limit the CPU usage of a process.
- Host: GitHub
- URL: https://github.com/vangelov/node-cpulimit
- Owner: vangelov
- License: mit
- Created: 2016-03-08T21:11:19.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-04-29T16:11:06.000Z (about 8 years ago)
- Last Synced: 2025-10-19T08:36:37.532Z (8 months ago)
- Topics: cpu, cpu-limit, javascript, nodejs
- Language: JavaScript
- Size: 8.79 KB
- Stars: 32
- Watchers: 1
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-cpulimit
A module which limits the CPU usage of a process. Useful when your computer is performing some heavy work that takes too much of the CPU cycles but you want to perform other tasks. It works by sending SIGSTOP and SIGCONT signals at regular intervals depending on the specified limit.
## Usage
### As a program
`npm install -g cpulimit`
```
cpulimit -l [-w ] [-i] (-p | -c | -- )
Options:
-h, --help output usage information
-V, --version output the version number
-l, --limit the CPU usage as a percent (0 - 100)
-p, --pid limit by process id
-c, --cmd limit by command name
-- spawn this command with these arguments and limit it
-w, --wdir set the current working directory of the spawned process
-i, --include-children also limit child processes.
```
### As a library
`npm install --save cpulimit`
```javascript
var limiter = require('cpulimit');
var options = {
limit: 20,
includeChildren: true,
pid: 2324
};
limiter.createProcessFamily(options, function(err, processFamily) {
if(err) {
console.error('Error:', err.message);
return;
}
limiter.limit(processFamily, options, function(err) {
if(err) {
console.error('Error:', err.message);
}
else {
console.log('Done.');
}
});
});
```
`options` object having some of these properties:
* `limit` (required) the CPU usage as a percent (0 - 100)
* `includeChildren` also limit child processes
* `pid` limit by process id
* `command` limit by command name
* `spawn` object with the following properties:
* `command` command name
* `args` array with the arguments
* `cwd` working directory
## Similar projects
- https://github.com/opsengine/cpulimit (in C)
- https://github.com/tgulacsi/mcpulimit (in Go)