Actualmente tengo unos 650,000 elementos en memcached (se usa 430MB de memoria) y el número sigue en aumento. Se espera que exceda 1,000,000 de artículos antes de ir al piso. La proporción de aciertos/faltas actual es de 25: 1, por lo que la eficiencia es bastante buena. Solo quería preguntar ¿hay un millón de elementos en memcached en un solo servidor? Si no, ¿cuántos son demasiados?¿Cuántas teclas hay demasiadas en memcached?
Respuesta
Puede escalar hasta a un único servidor de 64 bits con 48 GB y colocar hasta 80,000,000 de elementos en él. O bien, puede escalar fuera de y comprar muchos servidores de 4GB y poner hasta 2,400,000 artículos en cada uno. Memcached funciona maravillosamente bien cuando lo distribuye en varios servidores.
@Jim, gracias por su respuesta, ¿así que 2,400,000 es la cantidad máxima de artículos que Memcached puede almacenar en una caja de 4GB? – jack
Disculpe, es una estimación aproximada basada en sus 650k artículos actuales en 430MB. Pero 1m de artículos está muy por debajo del máximo para esa máquina. Tendrá que considerar lo que ocurre cuando el * volumen * de acceso a la memoria caché aumenta (¿la CPU o la red se convierten en un cuello de botella?) Y también lo que sucede si la máquina con memoria caché se cae. Incluso si una sola máquina puede manejar la caché y la carga, es posible que necesite dos o más para admitir la conmutación por error para su aplicación. –
"Demasiados" es, sin embargo, muchos de los que tiene cuando se queda sin memoria para dedicar a memcached.
Los datos se almacenan en una tabla hash gigante, haciendo búsquedas muy cerca de O (1). A medida que crece una tabla hash, las colisiones teóricamente aumentan, pero las implementaciones de buena calidad (y adecuadas para memca) del concepto de tabla hash generalmente incluyen amplios medios para ayudar a lidiar con esto con muy poca desaceleración.
¿No son tablas hash O (log (n))? – user1130176
@ user1130176 No en el caso promedio, no. El comportamiento de O (log (n)) de una tabla de hash putativa sugeriría una implementación rota o mal aplicada. Es posible que esté pensando en alguna otra estructura que también se utilice comúnmente para implementar matrices asociativas, p. alguna forma de árbol –
La única manera de obtener tiempo constante sería alguna función determinista, uno a uno, desde la clave al índice de acceso aleatorio, ¿verdad, es eso lo que hace memcached? ¿Cómo podría atravesar 100M registros en O (1) vez? Me encantaría aprender cómo se hace esto. – user1130176
- 1. ¿Cuántas columnas hay demasiadas columnas?
- 2. Inyección de constructor: ¿Cuántas dependencias hay demasiadas?
- 3. ¿Cuántas NSTimers son demasiadas?
- 4. ¿Cuántas capas son demasiadas?
- 5. ¿Cuántas particiones de tabla hay demasiadas en Postgres?
- 6. mysql: ¿cuántas columnas son demasiadas?
- 7. ¿Cuántas PHP incluye son demasiadas?
- 8. ¿Cuántas filas de datos hay demasiadas filas de datos?
- 9. ¿Cuántas clases son demasiadas? Rails STI
- 10. MySQL: ¿Cuántas consultas por página son demasiadas?
- 11. ¿Cuántas filas de MySQL son demasiadas?
- 12. ¿Cuántas tablas son "demasiadas" en un único SQL SELECT?
- 13. ¿Cuántas son demasiadas incluidas en <HEAD>?
- 14. ¿Cuántas manijas de Windows en uso son "demasiadas"?
- 15. ¿Hay demasiadas tablas?
- 16. ¿Cuántas líneas de código PHP son demasiadas para un archivo?
- 17. ¿Cuántas implicidades hay en Scala?
- 18. ¿Cuántas zonas horarias hay?
- 19. ¿Hay alguna forma de contar cuántas teclas tiene una matriz en Php?
- 20. ¿Hay demasiadas afirmaciones en esta prueba unitaria?
- 21. ¿Cuántas teclas presionadas puede detectar Flash? usando as3
- 22. ¿Cuántas fuentes hay disponibles en Prawn?
- 23. Cuántas letras diferentes hay en la cadena
- 24. ¿Hay un contenedor tipo ORM para memcached
- 25. ¿Cuántas ViewStubs son demasiadas para un único archivo XML de diseño?
- 26. ¿Cuántas columnas son demasiadas para una tabla de SQL Server 2005?
- 27. ¿Hay buenos ejemplos de python-memcache (memcached) utilizados en Python?
- 28. ¿hay un equivalente de Memcached escrito en C#?
- 29. Demasiadas actividades en Android?
- 30. Múltiples cachés en Memcached
Puede agregar otro servidor e instalar Memcache en él y distribuirlo. Es la belleza de eso, entonces no tendrás que preocuparte por esto. – DarthVader
¿Ves? Si memcached es lo suficientemente bueno para granjas de servidores como el deathstar, es lo suficientemente bueno para ti. – Xeoncross