Article ID: 119500, created on Mar 4, 2015, last review on Mar 4, 2015

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.4 for Linux/Unix

Sintomi

  1. La cartella che contiene le sessioni PHP ha un grande numero di file:

    ~# ls -l /var/lib/php/session | wc -l
    1139718
    
  2. Quando eseguo /etc/cron.hourly/plesk-php-cleanuper, l'utilizzo della CPU aumenta al 100%.

  3. Quando cerco di trovare tutti i processi della sessione PHP operativi, si verifica l'errore:

    ~# [ -x /usr/lib64/plesk-9.0/maxlifetime ] && [ -d /var/lib/php/session ] && find /var/lib/php/session -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib64/plesk-9.0/maxlifetime) ! -execdir fuser {} \; -delete
        Cannot open a network socket.
        Cannot open /proc directory: Too many open files
        fuser: error while loading shared libraries: libc.so.6: cannot open shared object file: Error 24
        find: Failed to save working directory in order to run a command on `sess_fch2h2dm7s73t0g09r3dmepdp0': Too many open files
    

Causa

Lo script plesk-php-cleanuper contiene una stringa ! -execdir fuser {} \, che apre ogni file nella directory /var/lib/php/session e verifica che non siano utilizzati dalle elaborazioni attive e che possano essere eliminati. Tuttavia, il numero massimo di file aperti รจ impostato in 1024 come valore di default.

Risoluzione

  1. Eliminare /var/lib/php/session mediante questo script senza il checker:

    ~# [ -x /usr/lib64/plesk-9.0/maxlifetime ] && [ -d /var/lib/php/session ] && find /var/lib/php/session -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib64/plesk-9.0/maxlifetime) -delete
    
  2. Aumentare il limite per i file aperti al valore richiesto.

Per ottenere il numero massimo di file aperti, eseguire:

    ~# ulimit -a
    open files                      (-n) 1024

Aggiungere ulimit -n 30480 a /etc/cron.hourly/plesk-php-cleanuper:

    ~#cat /etc/cron.hourly/plesk-php-cleanuper
    ~#!/bin/sh
    ~ulimit -n 30480
  1. Eseguire di nuovo il Cron Job necessario e verificare che sia completato senza errori.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 01bc4c8cf5b7f01f815a7ada004154a2 29d1e90fd304f01e6420fbe60f66f838 0a53c5a9ca65a74d37ef5c5eaeb55d7f e0aff7830fa22f92062ee4db78133079 e8756e9388aeca36710ac39e739b2b37 dd0611b6086474193d9bf78e2b293040 caea8340e2d186a540518d08602aa065 aea4cd7bfd353ad7a1341a257ad4724a 2a5151f57629129e26ff206d171fbb5f e335d9adf7edffca6a8af8039031a4c7 742559b1631652fadd74764ae8be475e

Email subscription for changes to this article
Save as PDF