プロジェクトを開くとき、もしくはプロジェクト内で作業をしているときに“EMFILE: too many open files”というエラーが発生する。

プロジェクト内にデータフレームやチャートなどのアイテムが多すぎると、プロジェクトを開いたり操作を行ったりする際に「EMFILE: too many open files」というエラーが発生することがあります。

この問題を回避するためには、以下の手順をお試しください。

  1. Exploratory Desktopの再起動: まず、Exploratory Desktopを再起動し、プロジェクトが開けるか確認してください。

  2. OSの再起動: Exploratory Desktopの再起動で問題が解決しない場合は、OS自体を再起動してからExploratory Desktopを起動して、プロジェクトが開けるかを確認してください。

プロジェクトを開くことができたら、不要なアイテム(データフレーム、チャート等)を削除してください。

もし、問題が解決しない場合は、OSの設定で開くことのできるファイル数の上限を増やすことが考えられます。

MacOSの場合

ステップ1: 現在の設定を確認する

ターミナルを開き、以下のコマンドを実行して現在の制限を確認します。

ulimit -n
sysctl kern.maxfiles
sysctl kern.maxfilesperproc

ステップ2: 設定値を増やす

システムファイルを編集して制限を増やします。

  1. /etc/sysctl.confファイルの編集:

    • ファイルが存在しない場合は作成し、以下の行を追加します。

      sudo nano /etc/sysctl.conf
      

      以下の内容を追加します。

      kern.maxfiles=65536
      kern.maxfilesperproc=65536
      
  2. プロファイルの編集:

    • /etc/profileファイル(Zshを使用している場合は/etc/zprofile)を編集し、以下の行を追加します。

      sudo nano /etc/profile
      

      以下の内容を追加します。

      ulimit -n 65536
      
    • ファイルを保存して閉じます。

ステップ3: システムの再起動

変更を適用するためにMacを再起動します。再起動後、ターミナルで以下のコマンドを実行して変更が反映されているか確認します。

ulimit -n

Windowsの場合

Windowsでは、直接開くファイル数の上限を設定することはできませんが、デスクトップヒープサイズを増やすことで、プロセスが開けるファイルハンドル数を間接的に増やすことができます。ただし、この操作はシステム設定を直接変更するため、慎重に行ってください。

ステップ1: レジストリエディタの起動

Win + Rキーを押し、regeditと入力してEnterキーを押します。

ステップ2: レジストリキーへの移動

以下のパスに移動します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems

ステップ3: 設定値の増加

  1. 右ペインでWindowsという文字列値を探し、ダブルクリックして編集します。
  2. 値の中にSharedSection=1024,20480,768のような部分があります。これはデスクトップオブジェクトのヒープサイズを表しています。
  3. 2番目と3番目の値を増やします。ただし、大きすぎる値は設定しないでください。(例:SharedSection=1024,30720,1024

ステップ4: システムの再起動

変更を適用するためにコンピュータを再起動します。

「いいね!」 1