2011-10-02 1 views
17

Come eseguire la pianificazione della capacità della cache, ad es. Quanta RAM allocare per ehCache, memcache o dynacache? Esiste una formula standard del settore?Pianificazione della capacità della dimensione della cache

Ad es. Ho circa 60.000 record nel database. Questo è il dato dell'azienda - che contiene il nome dell'azienda, la descrizione e il codice dell'azienda. Voglio implementare una funzione tipizzata usando jQuery e voglio memorizzare i dettagli di questo nome della società nella cache.

Quale sarebbe la dimensione della cache ideale? So che la dimensione della cache è limitata alla quantità di memoria disponibile ma è interessata a conoscere un modo specifico? oppure è una prova ed errore in cui si inizia con alcune dimensioni e test, si traccia un grafico e si continua a regolare la dimensione della cache.

Aggiornamento

ID azienda - CHAR (9)

Nome della società - VARCHAR2 (250 caratteri)

società Desc - NVARCHAR2 (1000 caratteri)

+0

Qual è la lunghezza massima di ogni campi dati azienda ha? –

+0

Ho aggiornato la domanda con ulteriori dettagli sulla lunghezza delle colonne – basav

+3

Si consiglia di utilizzare INT invece di CHAR (9) per l'ID azienda –

risposta

38

1) Se si dispone di un server cache dedicato, non è necessario preoccuparsi della quantità di spazio di memoria che è necessario utilizzare. Puoi usare la quantità massima di memoria disponibile disponibile (o vicina a) e lasciarla fare la sua magia.

2) Se il server di memorizzazione nella cache è uguale al server Web, sarà necessario specificare la quantità di memoria consentita da memcached (dynacache o altro). Per il mio punto di vista, non c'è davvero una dimensione cache ideale. Tutto dipende dalla quantità di memoria del server, dalla quantità di dati da inserire nella cache, ecc. Finché la memoria è correttamente bilanciata tra il caching e il web server, si sta bene.

In questo caso, sono disponibili meno di 100 MB di dati da memorizzare nella cache. A seconda di quanto il tuo server ha, è molto piccolo, ma dovrai sempre pensare a quanti dati crescono e, inoltre, devi aggiungere ulteriori dati (come clienti, prodotti ecc ...). Quindi se metti meno del necessario, dovrai interrompere il servizio, aumentare il valore della memoria consentita, avviare il servizio.

Se il server elabora molte informazioni che richiedono molta memoria, sarà necessario calcolare la quantità di memoria e risorse utilizzate da tali processi.

esempio rapida:

  • 1 Server (cache e server web) con 4G di memoria totale.
  • risorse di sistema e processi tra cui cronjob, base di dati ecc .: 3G
  • 60.000 clienti con un totale di 100Mb (usano sempre più la dimensione effettiva solo nel caso)

In questo esempio, 1G della memoria a sinistra (circa). Non è consigliabile l'importo totale rimasto poiché avrai abbastanza per il tuo sistema. Direi che usare 384 Mb o meno per la tua cache sarà un buon inizio. Consenti alla tua cache di crescere e non influisce sulla memoria del tuo sistema.

Si consiglia di monitorare il server per assicurarsi che l'allocazione di memoria per il sistema e il bilanciamento della cache siano perfettamente.

Ecco un buon articolo su di esso: http://techgurulive.com/2009/07/22/how-to-allocate-memory-within-memcached/

+0

Grazie per la spiegazione dettagliata (+1). Il mio caso è il secondo punto sopra il quale hai descritto. In sostanza, quello che stai dicendo è - prima di tutto, scopri quanta memoria disponibile è disponibile dopo il factoring in sistema, os e altre risorse. Quindi assegnare un po 'più di quello che è richiesto (in base alla disponibilità). A proposito, come hai trovato 100 MB sopra - hai appena aggiunto char e varchar? – basav

+1

Calcolando il valore massimo di ciascun campo * numero di client o è possibile visualizzare lo stato stabile. Dovresti vedere un field call "data_length" (Questo è quello che faccio in MySQL: 'show table status', sono sicuro che c'è una versione Oracle di quello). Poi puoi dire facilmente, ecco quanto prendono i miei dati, aumenti un po 'solo per essere al sicuro. Ma come ho detto, non esiste una soluzione perfetta. Devi controllare qual è il miglior valore per il tuo server. –

+15

spiegazione molto buona – eric