2011-10-02 7 views
17

Cómo hacer la planificación de la capacidad de la memoria caché, por ej. ¿Cuánta RAM asignar para ehCache, Memcache o Dynacache? ¿Hay alguna fórmula estándar de la industria?Planificación de la capacidad del tamaño de caché

Por ej. Tengo alrededor de 60,000 registros en la base de datos. Esta es la información de la compañía, que contiene el nombre de la compañía, la descripción y el código de la compañía. Quiero implementar una característica de tipo con jQuery y quiero almacenar los detalles de este nombre de empresa en la memoria caché.

¿Cuál sería el tamaño ideal de caché? Sé que el tamaño de la memoria caché está limitado a la cantidad de memoria disponible pero ¿le interesa conocer una forma específica? o es una prueba y error en el que se comienza con cierto tamaño y prueba, se traza un gráfico y se sigue ajustando el tamaño de la caché.

actualización

Company Id - CHAR (9)

Company Nombre - VARCHAR2 (250 CHAR)

Company descripción - NVARCHAR2 (1000 CHAR)

+0

¿Cuál es la longitud máxima de cada uno de los campos de datos de la empresa tiene? –

+0

He actualizado la pregunta con detalles adicionales de la longitud de las columnas – basav

+3

Yo recomendaría usar INT en lugar de CHAR (9) para la identificación de la compañía –

Respuesta

38

1) Si tiene un servidor de caché dedicado, entonces no tiene que preocuparse por la cantidad de espacio de memoria que tiene que usar. Puede utilizar la cantidad máxima de memoria disponible (o cerca) y dejar que haga su magia.

2) Si el servidor de almacenamiento en caché es el mismo que el de su servidor web, deberá especificar la cantidad que permite que se use memcached (dynacache u otro). Para mi punto de vista, no hay realmente un tamaño de caché ideal. Todo depende de la cantidad de memoria que tenga su servidor, la cantidad de datos que tiene que poner en la memoria caché, etc. Mientras que su memoria esté correctamente equilibrada entre el almacenamiento en caché y el servidor web, usted está bien.

En este caso, tiene un poco menos de 100 MB de datos que necesita almacenar en caché. Dependiendo de cuánto tenga su servidor, es muy pequeño, pero siempre tendrá que pensar cuánto crecen los datos y también, necesita agregar datos adicionales (como clientes, productos, etc.). Entonces, si coloca menos de lo que necesita, deberá detener el servicio, aumentar el valor de la memoria permitida e iniciar el servicio.

Si su servidor procesa una gran cantidad de información que requiere mucha memoria, entonces deberá calcular cuánta memoria y recursos requieren estos procesos.

Ejemplo rápido:

  • 1 servidor (caché y el servidor web) con 4G de memoria total.
  • sistema y los procesos recursos incluyendo tarea programada, la base de datos, etc .: 3G
  • 60.000 clientes con un total de 100 Mb (siempre utilizan más que el tamaño real por si acaso)

En este ejemplo, 1G de la memoria izquierda (aproximadamente). No se recomienda la cantidad total restante ya que tendrá suficiente para su sistema. Yo diría que usar 384Mb o menos para su caché será un buen comienzo. Permite que su caché crezca y no afecta la memoria de su sistema.

Recomendaría supervisar su servidor para asegurarse de que la asignación de memoria para su sistema y su caché se equilibran perfectamente.

He aquí un buen artículo sobre el tema: http://techgurulive.com/2009/07/22/how-to-allocate-memory-within-memcached/

+0

Gracias por la explicación detallada (+1). Mi caso es el segundo punto arriba que usted ha descrito. En esencia, lo que está diciendo es: primero, busque la cantidad de memoria disponible después de tener en cuenta el sistema, el sistema operativo y otros recursos. Luego, asigne un poco más de lo que se requiere (según la disponibilidad). Por cierto, ¿cómo surgieron 100 MB de arriba? ¿Acaban de agregar los caracteres y varchar? – basav

+1

Al calcular el valor máximo de cada campo * número de clientes o puede mostrar el estado estable. Debería ver una llamada de campo "data_length" (Esto es lo que hago en MySQL: 'show table status', estoy seguro de que hay una versión de Oracle de eso). Luego, puede decir fácilmente, aquí está la cantidad de datos que toma, aumenta un poco solo para estar seguro. Pero como dije, no hay una solución perfecta. Debes verificar cuál es el mejor valor para tu servidor. –

+15

muy buena explicación – eric

Cuestiones relacionadas