Linuxユーザにおけるリソース制限(limit.conf)
またまたOracle Database設計関連の記事。
Oracle Databaseをインストールする際に、リソース制限が必要になるらしいので、調べたことのメモ。
limits.conf
oracleユーザおよびgridユーザのリソース制限を行うために、limits.confの内容を確認する。
limits.confとは、PAM認証モジュールの一つであるpam_limits.soの設定ファイルとのことで、下記のようなフォーマットで記述する。
<domain> <type> <item> <value>
各項目の内容は、次のようになっている。
domain:制限を行うユーザ・グループ等
ユーザ名
@グループ名
* デフォルト設定
type:最大値
hard リミットの最大値(root権限で変更可)
soft デフォルトの最大値(ユーザ権限で変更可)
※ soft ~ hardがユーザ権限で変更可能な範囲
item:制限する項目
memlock 占有可能なメモリスペース(KB)
nofile 開くことができる最大ファイル数
stack スタック(メモリ)最大サイズ (KB)
nproc 最大プロセス数
value:閾値
各項目は、下記により詳細な記載がある。
Linuxhack.jp » ユーザ・グループのリソース制限
例えば、次のような設定がされていた場合、TFユーザの最大プロセス実行数は15となり、15を超えるプロセスは強制的に停止させられる。さらにhardが20に設定されていることから、TFユーザはulimitコマンドを使用することで、最大20までプロセスの実行数を増やすことができる。
TF soft nproc 15
TF hard nproc 20
一方で、次のような設定の場合はユーザ単位ではなく、グループ単位での設定となる。
@student soft nproc 20
@student hard nproc 30
ただし、サーバプロセスをlimits.confで管理しようとすると、ハマることがあるらしい。
※ この辺については、要勉強。。。
つまり、「PAM認証を介さないようなdaemon系プログラムの制限には/etc/security/limits.confは使えない」ことになるのです。
sysctl.conf
その他、Linuxのカーネルパラメータの設定を行う際に、編集するファイルについてもメモ。
vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
参考・引用
参考・引用させて頂いたブログ・記事を記載させて頂きます。