[pyar] Caches - Uso y desperdicio de RAM vs. CPU

Andres Riancho andres.riancho en gmail.com
Mar Mar 24 11:17:24 ART 2015


2015-03-24 11:12 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On 24/03/15 11:08, Andres Riancho wrote:
>>
>> 2015-03-24 10:58 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>>>
>>> On 24/03/15 10:47, Alejandro Santos wrote:
>>>>
>>>> 2015-03-23 20:40 GMT+01:00 Marcos Dione <mdione en grulic.org.ar>:
>>>>>
>>>>>       si, pero es distinto, porque el kernel maneja el tamaño de la la
>>>>> caché de disco en el sistema de manejo de memoria al reclamar páginas
>>>>> usadas para caché y dársela a la aplicación. en una aplicación ya estás
>>>>> fuera del loop que se entera de los cambios de este estilo. tomar toda
>>>>> la
>>>>> ram y dejar que el kernel la tire a swap cuando lo necesite es jugar
>>>>> con
>>>>> fuego, porque tu aplicación considera que todas las páginas que pidió
>>>>> están en memoria.
>>>>>
>>>> Si, el SO es omnisciente y si tiene páginas libres tiene todo el
>>>> sentido de usarlas para buffer-cache.
>>>>
>>>> Pero con tu aplicación, vos podés controlar cuánta memoria querés
>>>> asignarle a la cache/buffer/whatever en espacio de usuario. Queda en
>>>> el usuario configurar la estructura en un tamaño razonable, si hay 8
>>>> GB de RAM y el usuario le pone 16 GB al tamaño de la estructura, si,
>>>> vas a tener trashing y la eficiencia va a ir por el piso. Lo mismo
>>>> ocurre si tenés 8 GB de RAM física y le ponés 4 GB pero también tenés
>>>> otras aplicaciones corriendo en la misma máquina, y la suma de toda la
>>>> memoria que se le pide es más de 8GB.
>>>>
>>>> Al responderle a Andrés supuse que el usuario es razonable y entiende
>>>> que si hay X RAM física, la sumatoria de todas las aplicaciones no
>>>> pueden dar mayor X.
>>>
>>>
>>> Tampoco es cierto que lo ideal es que la RAM sea usada solo por
>>> aplicaciones. Es hasta probable que sea mejor dejar que algunas
>>> aplicaciones
>>> se swapeen a disco y que parte de la RAM se use para cache de disco.
>>> Justamente de eso es de lo que habla lo que linkeé del sitio de Varnish
>>> :-)
>>>
>>> Si tu aplicación hace su propio manejo de swap mandando cosas a disco,
>>> termina peleando con el sistema operativo, y terminás con peor thrashing
>>> que
>>> si dejás que el sistema operativo haga su laburo.
>>
>> Ojo que nunca dije que pensaba hacer eso de hacer mi propio swap.
>> Cuando mencione swap era para evitarlo completamente, es decir,
>> reducir el tamaño de mi cache cuando veo que hay poca memoria real
>> disponible (para evitar swap del OS) y elevar el tamaño del cache
>> cuando veo que si hay memoria disponible (para usar mejor los recursos
>> de RAM y evitar desperdiciar CPU)
>
>
> Y no usás disco en absoluto? En ese caso sí.

Al menos en la implementacion que tengo ahora, el cache es basicamente
un dict, asi que no, no utilizo disco para almacenar los items del
mismo. Quizás alguna vez las cosas se vayan a disco, pero porque el OS
lo determine, no porque mi codigo python asi lo indique.

El objetivo de mi mail inicial era el de intentar entender si
modificar el tamaño de un cache (que se almacena en memoria, quizás
eso me falto aclarar) en tiempo de ejecucion en base a los recursos
disponibles tenia sentido o no.

>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3


More information about the pyar mailing list