Autore Topic: Out of memory comando SHELL?  (Letto 784 volte)

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 150
    • Mostra profilo
Out of memory comando SHELL?
« il: 15 Febbraio 2013, 09:29:15 »
Nella mia applicazione eseguo l'aggiornamento dell'ora (non so perchè ma l'orologio di sistema è sempre qualche secondo fuori con l'ora esatta):

Codice: [Seleziona]
SHELL ("sudo ntpdate 0.europe.pool.ntp.org")

Allora, per controllare meglio la cosa, ho inserito un secondo comando:

Codice: [Seleziona]
SHELL ("free | grep cache: | awk '{print $3}'") WAIT TO DummyString

per avere in DummyString la memoria occupata.

L'utilizzo della memoria è circa 22% (con memoria da 1 giga).
Poi si blocca (Out of memory), ma mi succede sempre con il comando SHELL.

Qualcuno saprebbe illuminarmi?
Grazie.


Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Out of memory comando SHELL?
« Risposta #1 il: 15 Febbraio 2013, 10:28:50 »
Domande:

1) pulisci la stringa ogni volta?
2) ogni quanto ripeti la shell?
3) durante l'esecuzione, hai provato a monitorare le risorse con top (fuori gambas)?

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 150
    • Mostra profilo
Re: Out of memory comando SHELL?
« Risposta #2 il: 15 Febbraio 2013, 10:48:35 »
Stringa: la stringa viene utilizzata anche da altre parti, comunque la stringa vado a riscriverla ogni volta, non vado a fare &=.
Poi la stringa la uso solo in questo caso (per monitorare la memoria), nelle altre chiamate di SHELL non uso stringhe....

Le SHELL vengono chiamate ogni mezz'ora (quella per l'aggiornamento dell'ora), mentre la SHELL per leggere la memoria occupata ogni 20 minuti.

TOP non lo conoscevo, proverò adesso a guardare anche quello.

Quello che non mi convince è che se io sto a guardare 2-3 ore la percentuale di memoria utilizzata non cambia molto, poi mi ritrovo "Out of memory".

Intanto proverò a fare un log di TOP....

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Out of memory comando SHELL?
« Risposta #3 il: 15 Febbraio 2013, 12:23:47 »
Invece di usarre shell per ricavare l ora, prova ad utilizzareun http client,
Ma sei riuscito a capire quale dei due comandi shell provocay il problema?

Ps: come fai a usare sudo in shell?

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 150
    • Mostra profilo
Re: Out of memory comando SHELL?
« Risposta #4 il: 15 Febbraio 2013, 17:56:10 »
Guarda, suppongo che il comando per l'aggiornamento lo abbia inserito nel file sudoers.

Non sono ancora riuscito a capire cosa mi richiede più memoria....

P.S.
Cosa intendi dire con http client?
Un comando del tipo http client (ntp.pool.it....)?

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Out of memory comando SHELL?
« Risposta #5 il: 16 Febbraio 2013, 20:55:21 »
ma per avere l' ora sempre sincronizzato , forse ti basta scrivere :

Codice: [Seleziona]

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org
nel file :

driftfile /var/lib/ntp/ntp.drift

o almeno è quello che ho capito leggendo sul sito di ntp