LoginSignup
0
0

More than 5 years have passed since last update.

Solutions for typical problems of Linux(Centos 6.3)

Posted at

Solutions for typical problems of Linux(Centos 6.3)

システムリソース関係

Too many open files

「Too many open files」は Linux でプロセスが開けるファイルディスクリプタの上限に達してしまうと発生するエラーです。
「ファイルディスクリプタ」という名前ですが、 Linux ではソケットもファイルディスクリプタなので、ファイルを開いた場合だけでなく、ソケットを使って通信を行う場合にもファイルディスクリプタが使用されます。
そのため、Apache や Tomcat などで高負荷なサイトを運用している場合などには、比較的遭遇する確率が高い。

1 PAM認証モジュールの設定ファイル(limits.conf)を更新する。

参考

==limits.conf は PAM認証のモジュールである pam_limits.so の設定ファイルで、ログインの際に読み込まれるファイルです。
なので、一旦 su - して再読み込みをした後に再度値を確認します。==

vi /etc/security/limits.conf

下記を追記

*         hard    nofile      500000
*         soft    nofile      500000
root      hard    nofile      500000
root      soft    nofile      500000

2 デーモンプロセスの場合、PAM認証を通らないため、limits.confの設定が反映されない。

OS 起動時のデーモンは PAM 認証を通らないため、limits.conf の設定が反映されません。
この現象を回避するためには init.d 以下の起動スクリプト内で個別に「ulimit -n 65536」を指定すればいいのですが、複数のプロセスに指定する必要がある場合など、設定変更の度にいちいち個別のファイルを編集するのは面倒です。
何か良い方法はないかと思っていろいろと調べてみたところ、自動起動する全てのデーモンに設定を反映するための方法がちゃんと用意されていました。参考

vi /etc/sysconfig/init

ファイルの末尾に下記を追記

ulimit -n 65536

==※リブート後、反映される。==

2 システム全体のファイルリミットを増やす

vi /etc/sysctl.conf

下記を追記

fs.file-max = 2097152

設定を反映

sysctl -p

3 ファイルリミットを確認

cat /proc/sys/fs/file-max
2097152
ulimit -Hn
500000
ulimit -Sn
500000

ユーザーsoushiの上限を確認

su - soushi -c 'ulimit -aHS' -s '/bin/bash'
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 78867
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 500000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

セキュリティ関係

SSH接続で、SSHクライアントが実行できるコマンドを制限したい

1 authorized_keysファイルに、次のように記述する。

command="free" ssh-rsa AAAAB3N…QOID== jpetazzo@tarrasque
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0