posix_getrlimit

システムリソース制限に関する情報を返す

説明

arrayfalse posix_getrlimit(intnull $resource = null)

posix_getrlimit は、 現在のリソースにおけるソフトリミットおよびハードリミットを配列で返します。

各リソースには、それぞれソフトリミットとハードリミットがあります。 ソフトリミットとは、そのリソースに対してカーネルが課す制限値のことです。 ハードリミットとは、ソフトリミットの上限値のことです。 特権を持たないプロセスは、ソフトリミットの値を 0 からハードリミット値の間で設定することが可能です。 また、ハードリミットの値を下げることもできます。

パラメータ

resource

null の場合、全てのリソースリミットを取得します。 null でない場合、指定されたリソースタイプのリミットのみを返します。

戻り値

各リソースに関する制限値を含む連想配列を返します。 個々のリミット値には、ソフトリミットとハードリミットがあります。

返される制限の一覧
制限の名前 制限についての説明
core コアファイルの最大サイズ。0 の場合はコアファイルを作成しません。 コアファイルのサイズがこの値を超えると、 このサイズまで切り詰められます。
totalmem プロセスのメモリの最大サイズを表すバイト数。
virtualmem プロセスの仮想メモリの最大サイズを表すバイト数。
data プロセスのデータセグメントの最大サイズを表すバイト数。
stack プロセスのスタックの最大サイズを表すバイト数。
rss RAM 上の仮想ページの最大数。
maxproc 呼び出し元のプロセスの実ユーザー ID で作成できるプロセスの最大数。
memlock RAM 内にロックできるメモリの最大バイト数。
cpu そのプロセスが使用できる CPU 時間。
filesize そのプロセスが使用できるデータセグメントの最大サイズを表すバイト数。
openfiles オープンできるファイル記述子の最大値よりひとつ大きい値。
この関数は、失敗時に false を返します。

変更履歴

バージョン 説明
8.3.0 オプションの resource が追加されました。

例1 posix_getrlimit の使用例

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

参考

  • man ページ GETRLIMIT(2)
  • posix_setrlimit