Newsgroup: it.comp.os.linux.sys
Titolo: Differenze tra vari tipi di log

Ciao,
dopo aver avuto un enorme problema con apache (too many open files)
sarei curioso di sapere alcune cosette.
Differenza tra i vari tipi di log
- log su file
- log via syslog in locale
- log via syslog su server syslog remoto
Sempre in ambito apache, ho scoperto che con il metodo tradizionale
(log su file) prima o poi si incorre nel problema dei too many open
files.
Loggando via syslog in locale o via syslog in remoto, il problema
persiste o viene bypassato in qualche modo dal syslog? (magari non apre
tutti i files insieme ma accoda semplicemente del testo.
Mi serve semplicemente per valutare le varie soluzioni da presentare al
boss. Comprare un altro server web, oppure comprare un server log dove
mandare i log di tutti i servizi (o quasi tutti) e di tutte le
macchine.
Nel caso di log remoto, dato che i clienti han bisogno di awstats per
le statistiche, pensavo di esportare via nfs la directory con i log di
apache in modo da farli leggere dal programma...
Un ultima cosa, a voi cosa restituisce
ulimit -Sa | grep open
? io ho sparato un numero enorme per evitare questo problema del too
many open.

 files.
Ancora? Ti e' stata data gia' un risposta per questo. too many open file 
lo puoi bypassare semplicemente modificando il parametro del kernel. Mi 
pare di averti gia' consigliato di guardare su google, ma visto che sei 
cosi' pigro:
In /proc/sys/ ci sono tutti i parametri del kernel. Ad ogni riavvio devi 
mettere dentro il parametro che vuoi. In alternativa c'e' /etc/sysctl.conf
... mo' basta ;)
-- 
il capitano dei carabinieri chiede a un appuntato: "quanto fa 1+1"
l'appuntato: "3"
I colleghi in coro "gli dia un'altra chance. Gli dia un'altra chance!"
Il capitano ci riprova. Quanto fa "2+1".
l'appuntato: "3"
I colleghi in coro "gli dia un'altra chance, gli dia un'altra chance!"

 mettere dentro il parametro che vuoi. In alternativa c'e' /etc/sysctl.conf
Infatti il problema l'ho risolto.
Io però ho chiesto altre cose:
1- come si fa a contare il numero di file aperti da un dato processo
(proverò a chiedere a google) in modo da avere un idea su come
impostare ulimit (è inutile mettere ulimit -n 200000 quando magari
basta 2000)
2- senza alzare a valori folli ulimit, usando il syslog si bypassa il
problema o anche syslog stesso soffre del too many open files?
Inoltre, il too many open files è relativo al processo vero? se apache
apre troppi file, si blocca apache e no tutta la macchina....oppure è
a livello globale?
Lunedi in ufficio proverò a domandare a google. intanto se potete
dirmi qualcosa ne sarei grato....


Hai ragione. Usare un parametro alto richiede piu' risorse (altrimenti 
sarebbe gia' alto per default).
Per quanto riguarda la questione dei file aperti (con il kernel 2.6) ho 
visto che c'e' un file: /proc/sys/fs/file-nr
Potrebbe anche essere questo....


 a livello globale?
non è che si blocca , semplicemente non gli viene permesso di aprire altri
file.
bye.
-- 
Esplode bomba in un cimitero: tutti morti.

 Potrebbe anche essere questo....
Be ieri (domenica) ho trovato un doc che spiegava un po la 'lettura'
del file-nr. Diceva che per sapere il numero di file aperti bastava
fare
lsof | wc -l
quindi io l'ho adattato alla versione solo httpd con
lsof | grep httpd | wc -l e mi da valori tipo
114677
oppure
112530
Io ho impostato con ulimit un valore di 200000 quindi per ora sono ok.
Ma è normale avere 114600 file aperti di solo apache? Mi sembrano
tantini.
Soprattutto se paragonati al 1024 di default...
Come mai un valore cosi basso in linux? Stiamo parlando di cifre 100
volte piu grandi e no poche decine.
E' un problema del mio server o è un fatto risaputo? Con 600 domini (2
log per dominio) è normale arrivare a valori di questo calibro?
Posso mantenere valori di ulimit così elavati (e in futuro alzarli
ancora se necessario) oppure consigliate di aggiungere un altro server
web macchina o loggare via syslog in remoto (che ancora non ho capito
se è soggetto allo stesso problema)?
Quello che proprio non capisco è come mai venerdi pomeriggio (in
attivo 599 domini circa) tutto funzionava correttamente con un ulimit
settato al valore di default (1024), poi ho aggiunto un dominio (totale
600 circa) e dopo qualche ora mi ha dato l'errore. Adesso sono andato a
controllare e mi sono ritrovato 114000 file aperti. 1 dominio ha fatto
tutto questo casino? Credo sia un altro problema.
Inoltre, non credo basti fare 'il_numero_di_domini*il_numero_dei_log'
per avere uno stimato dei file necessari in quanto io con 600x2 arrivo
a 1200 mentre il limite era a 1024. senza poi contare tutti i file di
apache e il numero di processi attivi....

 file.
Si chiaro, non si blocca. però in questo caso solamente apache (più
di prececiso il pid con FD > ulimit) non riesce ad aprire altri file.
senza ripercussioni sul sistema...

 112530
[CUTTONE]
ho scritto una stronzata.....
chiedo perdono.
il limite è di ogni singolo processo e no di tutti i processi
complessivi quindi il metodo che ho indicato (lsof | grep httpd| wc -l)
non va bene ma bisogna usare quello suggeritomi da nero (ls
/proc/PID/fd | wc -l)

 112530
premesso che è (come dici sotto) la cifra globale, io ho 19.410 come 
risposta.
Se guardo tutti i file sono sotto i 49.000
Che diamine apri???
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
E' un cretino illuminato da lampi di imbecillita'.
		-- Ennio Flaiano

 Che diamine apri???
Non ne ho idea......
Tu cosa apri?
Quanti log per ogni dominio?
Scrivi un virtualhost (nascondi ip e altri dati sensibili) per favore.


<virtualhost xx.xx.xx.xx>
servername www.nomedominio
serveralias nomedominio
customlog /usr/local/apache/logs/nomedominio_log combined
documentroot /pagine/directory/nomedominio
ErrorDocument 404 
http://www.nomedominio
ErrorDocument 403 
http://www.nomedominio
</virtualhost>
Ho quindi 1 log di tipo access per dominio ma quello degli errori a comune
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
Essere innocenti e' pericoloso perche' non si hanno alibi.
		-- Boris Makaresko

> Ho quindi 1 log di tipo access per dominio ma quello degli errori a comune
Io uguale a te però error log uno per ogni virtualhost.
Però, nell'httpd.conf ho
Include /etc/apache/domini/*
che in pratica mi include tutti i virtualhost (in poche parole ogni
virtualhost ha un suo file di config separato) ma non credo che dia
fastidio dato che una volta partito apache, il file non vinee piu
usato.
E' molto piu comodo gestire i domini con i virtualhost separati.