人生は、お天気いろいろ

日々の生活やプログラミング等に関するメモ・雑文を記載しています

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は使えない」ことになるのです。

staffblog.yumemi.jp

 

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

参考・引用

参考・引用させて頂いたブログ・記事を記載させて頂きます。