Hai un filesystem VZFS, il che significa che il tuo VPS è una macchina virtuale Parallels Virtuozzo. In Virtuozzo il provider di hosting può impostare limiti su molti parametri, comprese le allocazioni ottenute con VZFS.
Causa: fuori dagli Inodi (più comune)
Dopo anni di lavoro con centinaia di clienti VPS Virtuozzo che hanno avuto il problema di non essere in grado di creare file, anche se sembrava esserci molto spazio libero, la stragrande maggioranza di loro aveva raggiunto il proprio limite di inode. Eseguire questo comando per visualizzare l'allocazione degli inode ( Inodes
), gli inode utilizzati ( IUsed
), gli inode rimanenti ( IFree
) e la percentuale di inode utilizzati ( IUse%
):
df -i
Avere un utilizzo dell'inode al 100% accade molto. Cause comuni nella mia esperienza:
- Bounceback e-mail di spam
- Email di spam in uscita in coda
- Molte email in entrata archiviate
- Alcuni utenti impostano la propria garbage collection della sessione PHP (
session.gc_maxlifetime
) su oltre cento anni
- Troppi file di cache generali
- Cache oggetti abilitata nel plugin WordPress W3 Total Cache
- Registro errori Magento (un nuovo file viene generato per ogni errore)
- Altri programmi / script mal configurati o mal progettati che creano un mucchio di file e dimenticano di eliminarli
Risoluzione dei problemi
Se scopri di avere un inode basso o esaurito ma non sai dove si trovino la maggior parte di essi, ho questo Bash one-liner che cerca la directory corrente e conta gli inode a una profondità di cartella di 1:
for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr
Puoi continuare a cambiare la directory di lavoro corrente a partire da /
fino a quando non trovi il colpevole utilizzando l'allocazione dell'inode.
Spiegazione
Il tuo VPS è su un filesystem VZFS, che fa parte di Parallels Virtuozzo (non OpenVZ, che è simile e basato sulla stessa tecnologia, ma OpenVZ non userebbe VZFS).
A causa del modo in cui Virtuozzo memorizza i file in VZFS, gli inode sono spesso limitati più di quanto lo sarebbero su altri filesystem come ext4 o XFS. L'host tiene traccia di tutti questi file e sarebbe vantaggioso per il provider di hosting non lasciare che un singolo VPS occupi centinaia di milioni di inode. Di conseguenza, il provider di hosting può impostare un limite di inode su un valore basso, come 1.000.000 di inode.
Dopo anni di lavoro con centinaia di clienti che hanno esaurito la loro allocazione di inode su Virtuozzo, questi "misteriosi" problemi relativi alle quote del disco non mi sorprendono più.
Causa: altri limiti Virtuozzo
Una percentuale molto piccola dei clienti VPS Virtuozzo con cui ho lavorato ha avuto problemi con il filesystem perché raggiungevano altri limiti. Puoi vedere alcuni (ma non tutti) i limiti con questo comando:
cat /proc/user_beancounters
Risoluzione dei problemi
Se la failcnt
colonna ha un valore maggiore di 0 o un held
valore di colonna è uguale al limit
valore corrispondente , hai raggiunto un limite.
Puoi cercare quali sono i parametri sul wiki di OpenVZ qui . Un parametro può essere "primario", "secondario" o "ausiliario".
Dovresti contattare il tuo provider di hosting per ulteriore assistenza se scopri che non puoi ridurre il held
conteggio per un limite raggiunto dal tuo VPS.
Questa risposta può essere ampliata molto a seconda di quali fagioli sono stati massimizzati, poiché diversi limiti raggiunti causano sintomi diversi.
Causa: limite (i) ridotto (i) dopo essere stato colpito
Per quanto riguarda /proc/user_beancounters
o df -i
, a volte, un amministratore di sistema Virtuozzo può ridurre il valore limit
di un parametro al di sotto del held
valore.
Ad esempio, se il limite originale del diskinodes
parametro fosse 1.500.000 e tu raggiungessi il limite, qualcuno nel tuo provider di hosting imposta il limite di inode su 1.000.000, vedresti un bizzarro rapporto sull'inode df -i
che non ha senso.
Dalla tua parte, potresti vedere un numero irragionevolmente grande, come 18.446.744.069.620.218.961 .
Considero questo un comportamento sinistro da parte del provider di hosting, soprattutto se non ti informano, perché i valori insoliti che vedi vanno contro la conoscenza dei super utenti che non hanno esperienza con Virtuozzo / OpenVZ, il che porta a fuorviare consiglio ( esempio , un altro esempio ).
Risoluzione dei problemi
Contatta il tuo provider di hosting. Mostra loro quello che hai trovato e lavora con loro per portare i tuoi fagioli in mano sotto il limite.
Se si rifiutano di aiutarti, abbandonare il provider di hosting e trovarne un altro che non utilizza la virtualizzazione Virtuozzo / OpenVZ. La virtualizzazione KVM, la virtualizzazione VMware, la virtualizzazione Xen o i server bare metal sarebbero soggetti a limiti molto inferiori rispetto a Virtuozzo / OpenVZ.
Spiegazione
Il tuo provider di hosting potrebbe aver verificato o risposto a un avviso e ha scoperto che il tuo VPS utilizzava troppa risorsa specifica (quasi sempre il limite degli inode, che è il diskinodes
parametro alla sua estremità).
Un amministratore Virtuozzo inesperto presso il provider di hosting ritiene di poter limitare il problema riducendo il limite a qualcosa di inferiore rispetto all'utilizzo effettivo delle risorse. Nel caso degli inode, potresti avere un'allocazione inferiore, come 1.000.000, anche se il tuo attuale utilizzo attuale potrebbe essere maggiore, come 1.500.000.
L'amministratore Virtuozzo nel loro pannello di controllo vedrebbe il tuo effettivo utilizzo e il nuovo limite, ma vedresti numeri falsi che sono probabilmente irragionevolmente alti a causa del modo in cui Virtuozzo virtualizza.
Un amministratore negligente di Virtuozzo non ti informerebbe di questo cambiamento, motivo per cui dovresti contattare il tuo provider di hosting se questo accade a te.