Mi sitio ocasionalmente tiene ráfagas de tráfico bastante predecibles que aumentan el rendimiento en 100 veces más de lo normal. Por ejemplo, vamos a aparecer en un programa de televisión, y espero que en la hora posterior al programa, reciba más de 100 veces más tráfico de lo normal.Reduce la durabilidad en MySQL para el rendimiento
Mi entendimiento es que MySQL (InnoDB) generalmente mantiene mis datos en un montón de lugares diferentes:
- RAM Buffers
- commitlog
- registro binario
- tablas reales
- Todos los lugares anteriores en mi DB esclavo
Esto es demasiada "durabilidad" dado que estoy en un nodo EC2 y la mayoría de las cosas pasa por el mismo conducto de red (los sistemas de archivos están conectados a la red). Además, las unidades son lentas. Los datos no son de alto valor y prefiero tener una pequeña posibilidad de perder unos pocos minutos en lugar de tener una alta probabilidad de interrupción cuando llega la multitud.
Durante estas ráfagas de tráfico me gustaría hacer toda esa E/S solo si puedo pagarla. Me gustaría simplemente mantener tanto en la memoria RAM como sea posible (tengo una buena cantidad de RAM en comparación con el tamaño de los datos que se tocarán durante una hora). Si los almacenamientos intermedios escasean o el canal de E/S no está demasiado sobrecargado, entonces seguro, me gustaría que las cosas vayan al registro de acciones o al registro binario para enviarlo al esclavo. Si, y solo si, el canal de E/S no está sobrecargado, me gustaría volver a escribir en las tablas reales.
En otras palabras, me gustaría MySQL/InnoDB a utilizar un algoritmo de "escribir de nuevo" caché en lugar de un "escribir a través de" caché algoritmo. ¿Puedo convencerlo de hacer eso?
Si esto no es posible, estoy interesado en los consejos de optimización generales de escritura en el rendimiento de MySQL. La mayoría de los documentos tratan sobre la optimización del rendimiento de lectura, pero cuando obtengo una gran cantidad de usuarios, estoy creando cuentas para todos ellos, por lo que es una carga de trabajo que requiere mucha escritura.
Gracias. Voy a jugar con esos. –