Newsgroup: it.comp.os.linux.iniziare
Titolo: Come monitorare un server e dimensionare l'hardware

Mi è capitato che un serverino che funge anche da proxy rallentasse 
terribilmente le connessioni ad internet degli utenti, anzi dell'unico 
utente connesso, il quale mi ha riferito che un portatile collegato 
direttamente al modem navigava a 2MBs mentre quello che passava per il proxy 
andava a 200Kbs.
La cosa si è apparentemente risolta autonomamente visto che dopo circa 
mezzora la velocità di navigazione dei PC collegati al proxy è tornata ai 
canonici 2Mbs.
Non sono riuscito a connettermi per verificare a cosa attribuire il problema 
ma mi sono posto alcune domande:
Come faccio a sapere se l'hardware che sto utilizzando per il mio server è 
dimensionato correttamente ?
Ho provato con il comando top, non mi pare di vedere cose eclatanti, ma sarà 
sufficiente ? E se in determinate situazione alcuni task occupassero tutte 
le risorse ?
Come fare un monitoring più approfondito ?
 
Ringrazio per i consigli.
 
Mik
 
P.S. Posto sotto il risultato di top di 20 minuti fa, funziona tutto 
correttamente ma casomai qualcuno notasse qualcosa di anomalo ....
 
 
 
top - 11:58:53 up 15 days,  1:08,  2 users,  load average: 0.82, 0.80, 0.76
Tasks: 247 total,   2 running, 245 sleeping,   0 stopped,   0 zombie
Cpu(s): 26.7%us,  0.7%sy,  0.0%ni, 72.2%id,  0.3%wa,  0.0%hi,  0.1%si, 
0.0%st
Mem:   2050996k total,  1997784k used,    53212k free,    42692k buffers
Swap:  1952760k total,        0k used,  1952760k free,  1558128k cached
 
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1987 mauro     20   0 51624  26m 5272 R   87  1.3   0:02.81 php
 1118 mysql     20   0  144m  19m 2880 S   23  1.0   2706:28 mysqld
 1861 stefano   20   0  2548 1296  924 R    1  0.1   0:00.58 top
   78 root      20   0     0    0    0 S    0  0.0  11:43.77 kondemand/1
 1353 asterisk -11   0 48624  12m 3720 S    0  0.6  20:56.45 asterisk
 1836 stefano   20   0  8848 1564  916 S    0  0.1   0:00.03 sshd
27165 mauro     20   0 20872 5820 3800 S    0  0.3   0:07.40 vlc
27168 mauro     20   0 20880 5832 3800 S    0  0.3   0:08.79 vlc
27171 mauro     20   0 20872 5940 3800 S    0  0.3   0:12.07 vlc
    1 root      20   0  2796 1640 1144 S    0  0.1   0:04.15 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S    0  0.0   0:01.14 migration/0
    4 root      20   0     0    0    0 S    0  0.0   0:08.38 ksoftirqd/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    6 root      RT   0     0    0    0 S    0  0.0   0:01.91 migration/1
    7 root      20   0     0    0    0 S    0  0.0   0:04.18 ksoftirqd/1
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1
    9 root      RT   0     0    0    0 S    0  0.0   0:22.40 migration/2
   10 root      20   0     0    0    0 S    0  0.0   0:07.88 ksoftirqd/2
   11 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/2
   12 root      RT   0     0    0    0 S    0  0.0   0:05.48 migration/3
   13 root      20   0     0    0    0 S    0  0.0   0:18.97 ksoftirqd/3
   14 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/3
   15 root      20   0     0    0    0 S    0  0.0   0:20.90 events/0
   16 root      20   0     0    0    0 S    0  0.0   0:13.36 events/1
   17 root      20   0     0    0    0 S    0  0.0   0:16.15 events/2
   18 root      20   0     0    0    0 S    0  0.0   0:14.27 events/3
   19 root      20   0     0    0    0 S    0  0.0   0:00.00 cpuset
   20 root      20   0     0    0    0 S    0  0.0   0:00.00 khelper
   21 root      20   0     0    0    0 S    0  0.0   0:01.65 netns
   22 root      20   0     0    0    0 S    0  0.0   0:00.00 async/mgr
   23 root      20   0     0    0    0 S    0  0.0   0:00.00 pm
   25 root      20   0     0    0    0 S    0  0.0   0:00.83 sync_supers
   26 root      20   0     0    0    0 S    0  0.0   0:01.42 bdi-default
   27 root      20   0     0    0    0 S    0  0.0   0:00.00 kintegrityd/0
   28 root      20   0     0    0    0 S    0  0.0   0:00.00 kintegrityd/1
   29 root      20   0     0    0    0 S    0  0.0   0:00.00 kintegrityd/2
   30 root      20   0     0    0    0 S    0  0.0   0:00.00 kintegrityd/3
   31 root      20   0     0    0    0 S    0  0.0   0:02.48 kblockd/0
   32 root      20   0     0    0    0 S    0  0.0   0:02.64 kblockd/1
   33 root      20   0     0    0    0 S    0  0.0   0:01.08 kblockd/2
 
 

  1118 mysql     20   0  144m  19m 2880 S   23  1.0   2706:28 mysqld
 
Ma è una situazione costante questa??? Perché un utilizzo così alto del
php è spesso indice di applicazione scritta con fondoschiena. E perché
php gira nel contesto di un utente?
 
-- 
Flavio Visentin
 
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 is nothing left.
 
Grazie.
Mik
 
 

 Ai fini delle performance cambia qualcosa ?
 
Delle performance no. Della sicurezza sì.


 is nothing left.
Grazie.
Mik

 presta a testare cose che non ho mai provato prima.
 
Ah... allora come si suol dire a caval donato non si sputa in bocca :-)


 carità .. ma non li conosco.
 
Posto che il "non li conosco" e` una motivazione che alla lunga non regge, 
cosa intendi con "si gestice semplicemente"? Ovvero, cosa vai a fare e come? 
Intendiamoci, il problema di dimensionamento di una macchina non e` solo su 
come esegue le operazioni a cui la dedichiamo, ma anche sui programmi che fa 
girare e su come scritti questi ultimi (e php non e` noto ne per la sua 
efficienza, ne per la qualita` del codice che permette di scrivere)
 
Enrico

 presupporre una o più delle seguenti condizioni:
 
Mi viene da aggiungere che probabilmente viene utilizzata una connessione 
per query, quando invece e` piu` saggio aprire una connessione per sessione 
applicativa
 
Enrico

 is nothing left.
 
 
Mik 
 
 


 
Risolto, era un ciclo del piffero che avevo messo in una tabella che contava 
gli impulsi di un led esterno diventata enorme.
Ora il load average è sceso al 30-40% mentre il processo php è attorno 
all'1%.
 
Grazie ad entrambi per l'aiuto.
 
Mik 
 
 

 gli impulsi di un led esterno diventata enorme.
 
Impulsi di un led esterno ? Perdona la curiosità... a cosa servirebbe 
far ciò ?
 
Saluti !
GbMax78

 NG, al massimo mi hanno offerto uno spritz.
 
Complimenti per tutta questa intraprendenza e per averla messa a 
disposizione degli altri ! :)
 
Saluti.
GbMax78
 
P.S.
Hai mai pensato a qualcosa tipo citofono su ip in modo da reinstradare 
la chiamata quando ti trovi fuori casa ad esempio verso uno smartphone 
con Android ? Io sto cercando di creare una soluzione del genere ma 
ancora sono in fase embrionale !

 sono in fase embrionale !
 
Tra le funzionalità di asterisk c'è quella di generare chiamate in 
automatico, sfrutterei questa possibilità.
Oppure sfruttando l'audio bidirezionale delle telecamere IP.
 
Ciao.
Mik 
 
 

 GbMax78
 
Ciao.
Mik
 
 

 Oppure sfruttando l'audio bidirezionale delle telecamere IP.
Effettivamente le telecamere che utilizzo ovvero le Sharkx permettono la 
bidirezionalitï¿œ perï¿œ poi prendono banda per il video che semmai potrei 
tarare in uno dei tre profili disponibili come low... per quanto 
riguarda la chiamata in automatico te che hardware metteresti lato porta 
di ingresso di casa per poi far arrivare ad Asterisk la chiamata ? Ma 
soprattutto come avresti la bidirezionalitï¿œ dell'audio ?
Saluti !
GbMax78

 ecc.
 
Si ma tutto questo ti veniva registrato in locale o anche rimbalzato in 
remoto tipo verso un palmare o pc dislocato altrove ?
 
Anche perchè se lo stesso dispositivo HSDPA ti dava la connessione nel 
caso il led power si fosse spento da remoto avresti visto ben poco...
 
Saluti.
GbMax78


 
La cosa non è banale e va pensata con calma. Comunque per gestire degli I/O 
digitali (ad esempio la pressione del tasto del campanello) in funzione dei 
quali attivare funzioni specifiche del server ho usato spesso chede con 
microcontrollori, vedi Arduino o la SBC68EC della Modtronix.


 Mik
 
Saluti.
GbMax78
 


 
Vedi subject della mail. Il post è nato per capire come fare per essere 
sicuri che l'hardware sia correttamente dimensionato per il tipo di 
applicazione.
 
Un atom potrebbe anche essere eccessivo ... o sottodimensionato. L'analisi 
del load average è sufficiente per capirlo ?
 
Ciao.
Mik