Domanda

sto usando ejabberd + mochiweb sul nostro server. Più a lungo Continuo ejabberd e mochiweb in esecuzione, il più memoria viene consumato (la notte scorsa si stava consumando il 35% della memoria. In questo momento è un po 'superiore al 50%). Ho pensato che questo era solo un problema di raccolta dei rifiuti mnesia - così ho installato Erlang R13B3 ed ho ricominciato ejabberd. Questo non risolvere il problema però.

Così sto notando ora che in un po 'al di sopra del 50% del consumo di memoria piena, sembra di partenza di ejabberd a "lasciar andare" della memoria e rimanere intorno al 50%. È normale? È ~ 50% la soglia per ejabberd, in modo che quando raggiunge lo si dice, "hey il momento di lasciare che in realtà qualche ricordo andare ..." e forse mantiene il resto intorno per un accesso rapido (come caching mnesia?)

Apprezzo qualsiasi input. Grazie!

È stato utile?

Soluzione 2

scopre, non v'è alcuna perdita di memoria (yay!) Ejabberd sta prendendo solo <40MB. Finalmente ho visto la luce quando ho visto l'Usage Grafici su EngineYard - solo 288MB viene effettivamente utilizzato, 550MB viene tamponata, e 175MB viene memorizzato nella cache. Il mio server ejabberd un aggiornamento ogni 2,5 secondi da ciascun cliente in modo che possono spiegare il motivo per cui molto è stato tamponata / cache.

Grazie per tutto il vostro aiuto.

Altri suggerimenti

Esegui erlang:memory(). nella shell di tanto in tanto. Si può anche dare erlang:system_info(Type). con allocated_areas e allocator una prova. Questi dovrebbero darvi un suggerimento su quale tipo di memoria è a tenuta.

È possibile anche impostare memsup mettere in guardia su processi di allocazione troppo la memoria.

atomi di nuova creazione nei processi di Erlang ottenere non garbage collection. Questo potrebbe essere un problema quando i processi vengono registrati da un algoritmo che crea i nomi di atomi ad esempio da casuale. creato in modo casuale le stringhe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top