添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Crate rlimit

source ·
Expand description

rlimit - Resource limits.

Set resource limit

use rlimit::{setrlimit, Resource};
const DEFAULT_SOFT_LIMIT: u64 = 4 * 1024 * 1024;
const DEFAULT_HARD_LIMIT: u64 = 8 * 1024 * 1024;
assert!(Resource::FSIZE.set(DEFAULT_SOFT_LIMIT, DEFAULT_HARD_LIMIT).is_ok());
let soft = 16384;
let hard = soft * 2;
assert!(setrlimit(Resource::NOFILE, soft, hard).is_ok());

Get resource limit

use rlimit::{getrlimit, Resource};
assert!(Resource::NOFILE.get().is_ok());
assert_eq!(getrlimit(Resource::CPU).unwrap(), (rlimit::INFINITY, rlimit::INFINITY));

Windows

Windows does not have Unix-like resource limits. It only supports changing the number of simultaneously open files currently permitted at the stdio level.

See the official documentation of _getmaxstdio _setmaxstdio .

println!("{}", rlimit::getmaxstdio()); // 512
rlimit::setmaxstdio(2048).unwrap();
println!("{}", rlimit::getmaxstdio()); // 2048

Increase NOFILE limit

See the example nofile .

You can also use the tool function rlimit::increase_nofile_limit

rlimit::increase_nofile_limit(10240).unwrap();
rlimit::increase_nofile_limit(u64::MAX).unwrap();

Troubleshoot

Failed to increase NOFILE to hard limit on macOS

On macOS, getrlimit by default reports that the hard limit is