Зміст

KB0004

Проблема

При високому навантаженні CREAM CE у системному журналі чи на електронну скриньку адміністратора надходить повідомлення приблизно такого змісту:

glite.univ.kiev.ua : May 22 01:36:14 : tomcat : can't open /etc/sudoers : Too many open files in system ;
 TTY=unknown ; PWD=/usr/share/tomcat6 ; COMMAND=/opt/glite/bin/glite-ce-cream-purge-sandbox
glite.univ.kiev.ua : May 22 02:03:46 : tomcat : can't open /etc/sudoers : Too many open files in system ;
 TTY=unknown ; PWD=/var/glite/tmp ; COMMAND=/bin/kill-s

При цьому можуть губитися завлання та виникати інші проблеми у роботі служби.

Застосовність

На разі це застосовно до будь-якої версії CREAM CE.

Причина

Перевищено системні обмеження на кількість одночасно відкритих файлів, що активовані за замовчуванням із міркувань безпеки.

Пояснення

Основною частиною служби CREAM CE є Java-застосування, що виконується у контейнері сервера застосувань Apache Tomcat. Вся діяльність застосування відбувається у контексті єдиного процесу віртуальної машини Java (JVM), що й призводить до перевищення обмежень безпеки, що задаються на кожен процес.

Вирішення

Потрібно дещо збільшити допустиму кількість відкритих файлів як на один процес, та і на систему загалом. Це стандартна практика, що застосовується на високонавантажених серверах.

  1. Найпростіше задати однакові обмеження для будь-якого процесу. Для цього необхідно створити файл /etc/security/limits.d/50-nofile.conf наступного змісту:
    # As this is server machine, increase number of
    # file descriptors available to daemons
    
    *                soft    nofile          32768
    *                hard    nofile          32768
  2. Також необхідно збільшити загальну кількість відкритих файлів, що може забезпечити ядро. Для цього необхідно додати чи змінити значення системного параметру у файлі /etc/sysctl.conf:
    # File descriptors
    fs.file-max = 65536
  3. Щоб застосувати зміни, необхідно застосувати системні параметри та перезапустити процес Tomcat:
    # sysctl -p
    # service tomcat6 restart

Євген Слюсар 2012/06/11 13:36