Saltar al contenido

MongoDB constantemente alto uso de la CPU

Necesitamos tu ayuda para extender nuestras crónicas con relación a las ciencias de la computación.

Solución:

Hay una función llamada db.currentOp() que enumera las consultas que se están ejecutando actualmente con información muy detallada, también incluye la duración que se han estado ejecutando (secs_running).

A continuación, puede utilizar el currentOp.opid con db.killOp() para eliminar esa consulta/operación.

Si db.currentOp() no devuelve ningún resultado, porque no hay una consulta que causó estragos, luego también está db.setProfilingLevel() que habilitará la creación de perfiles almacenando consultas en la base de datos “local”. Aquí hay un “Tutorial” que es del curso “M102: MongoDB para DBA”.

También se puede encontrar más información en este artículo detallado “Resolución de problemas de MongoDB 100% de carga de CPU y consultas lentas” de Igor Khomenko.

Lo primero y más importante que debe hacer es verificar su tipo de consultas, por ejemplo, en mi caso tuve el mismo problema y cuando revisé mis registros tail -f /var/log/mongodb/mongod.log (Puedes configurar este inicio de sesión /etc/mongod.conf) Solo vi las consultas simples como db.brands.find(“field”:”value”) pero revisé mis índices en las colecciones de “marcas” y este campo en las consultas no estaba indexado (db.brands.getIndexes()). Lo único que hice fue indexar este campo. db.brands.ensureIndex(name:1,unique:true). Por supuesto, asegúrese de que su campo sea único porque en este ejemplo lo puse como único. Después de eso, mi CPU cambió del 100% al 20%.

Así que no digo que ese sea tu problema, pero podría serlo, verifica tus consultas antes de hacer cosas más importantes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *