CentOS7でVNCが起動失敗。Too many open files

公開日: 2017年4月5日水曜日 サーバー


CentOS7でVNCを使う


CentOS7の操作をVNCにて行うため、yumでインストールします

yum install tigervnc-server


パスワードやサービスの設定、F/Wの通信許可を行いサービスの起動すると、何やら失敗している旨のエラーメッセージが表示されます。


# systemctl start vncserver@:1                                                                            
Error: Too many open files
Job for vncserver@:1.service failed because a configured resource limit was exceeded. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.



エラー内容はsystemctl status vncserver@:1.serviceもしくはjournalctl -xeで確認してという事です。




コマンドを叩くと以下のようなエラーが出力されました。

# systemctl status vncserver@:1.service    

 Failed to set a watch for vncserver@:1.service's PID file /home/***/.vnc/***:1.pid: T...en files


右端が「T...en files」となっていますが、Too many open filesを省略表示しているだけのよう。


※journalctl -xeだとToo many open filesのエラー表示を確認できました。






Too many open filesとは


Linuxでプロセスが開けるファイルディスクリプタの上限。

ググると、何かとエラーの原因になる事が多いようです。

上限値を少なくして利点があるのかといえば全くの不明で、デフォルト値1024がそもそも多いのか少ないのかもよくわかりません。


多めの値に設定すると、パフォーマンスが落ちる等の判りにくいデメリットがもしかしたら存在するのかもしれません。

ただこのエラーが出た場合、使いたいサービスが利用できないため対策として上限値の引き上げをします。


確認可能方法


# ulimit -n
1024

で、増やすにはどうすればいいの?



インターネット上に色々情報が山積していますが、微妙に情報が古かったり書いてあることが違っていたりと、どれが正しいのかイマイチわかりません。

テスト環境の利点を活かして、一通り試していきます。


結果、下記サイトの情報が有用でした。

http://blog.father.gedow.net/2016/03/28/limits-of-systemd/


参考サイトでは設定上限値の1006500を設定していますが、多すぎてちょっと不安がありましたから65536で設定します。


ディレクトリ作成
mkdir /etc/systemd/system/rsyslog.service.d

limits.conf作成
vi /etc/systemd/system/rsyslog.service.d/limits.conf

limits.confの中身
[Service]
LimitNOFILE=65536
LimitNPROC=65536

再起動
reboot


上限確認
# ulimit -n
65536

増えているー

状態確認
# systemctl status vncserver@\:1
(中略)
Active: active (running)

VNCが起動しているー


端末からVNCクライアント経由でログインできることを確認して完了です。



スポンサーリンク




スポンサーリンク




スポンサーリンクと関連記事
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿