Skip to main content

IEC アプリケーションはこれ以上ファイルハンドルを開くことができません。

重要

システム上のファイルハンドルの制限を変更する前に、Linux システム上のすべてのサービスへの影響を早急に検討する必要があります。代わりに、リークの原因を突き止めることをお勧めします。

トラブルシューティング

. ファイルハンドルのリークにより、次のような影響が生じる可能性があります。
  • ライセンスステータスの喪失。WIBU ライセンスは一定期間が経過すると破棄されます

  • 新しいファイルを開くことはできません。

Linux プロセスのデフォルトの動作では、オープンできるファイルハンドルの数が最大になります。プロセスがこの制限に達すると、それ以上新しいファイルを開くことができなくなります。

システムの制限値は、コンソールコマンドで確認できます。

ulimit -n

Linuxの各プロセスにはプロセスIDがあり、カーネルはファイル/フォルダシステム内の各プロセスに関する詳細情報を提供します。 procfs。これにより、1 つのプロセスに同時に割り当てられるファイルハンドルの数を簡単に判断できます。

. ファイルハンドルリークの可能性を調査するには、次の手順を実行することをお勧めします。
  1. のプロセス ID を検索する CODESYS ランタイム環境。

    標準の Linux ツールを使用して、のプロセス ID を検索できます。 CODESYS ランタイム環境:

    • htop 通常、プロセス ID は最初の列 (PID) に表示されます。

    • top 通常は、プロセス ID を最初の列 (PID) に表示します。

    • 組み合わせることができます psgrep クイック検索用のコマンド:

      ps aux | grep codesyscontrol

    プロセスIDをメモしておき、プレースホルダー <pid> が使用されている以下のコマンドで使用する。

  2. ファイルハンドルを確認して監視してください。

    次に、エントリを一覧表示します procfs ランタイムプロセスのファイルハンドルを表示します。

    sudo ls -la /proc/<pid>/fd/

    4. これは次のようになります
    _rtsl_img_iec_filehandle.png


    • ファイルハンドルが「実際の」ファイルの場合は、パスが表示されます。他のファイルハンドルはソケットなどでもかまいません

    • このコマンドを連続して複数回実行すると、ファイルハンドルの数が増えているかどうか、およびどのファイルが開いているかを確認できます。

    • ザ・ watch コマンドは 2 秒ごとに更新されるビューを作成します。

      watch sudo ls -la /proc/<pid>/fd/

これらのアクションは、開いているハンドルを監視し、どのファイルがファイルハンドルリークに関係している可能性があるかを調べるのに役立ちます。