2010-12-14 94 views
1

Etant un novice de niveau 1 sous Linux (Ubuntu 9), shell et cron, j'ai eu du mal à comprendre cela. Chaque soir, j'aimerais prendre un instantané de nos nœuds Cassandra et recommencer le processus.Cassandra Snapshot and Restart

Pourquoi? Parce que notre équipe est à la recherche d'une fuite de mémoire qui nécessite un redémarrage du processus toutes les 3 semaines environ. La cause première a été difficile à localiser. En attendant, j'aimerais mettre en place ces emplois cron pour réduire les interruptions de service.

Merci d'avance pour ceux qui ont déjà compris certains d'entre eux!

+0

Je suppose qu'il n'y a pas eu de réponses parce que les gens ne peuvent pas comprendre exactement la question. Comment définir un travail cron? cela semble un problème pour ServerFault de toute façon. – tokland

+0

Figuré Je répondrais à votre question ici aussi au cas où d'autres la trouveraient :) –

Répondre

2

La procédure générale est la suivante:

  1. Run drain nodetool (http://www.riptano.com/docs/0.6/utilities/nodetool#nodetool-drain) sur le noeud
  2. Run d'instantané nodetool
  3. tuer le processus cassandra
  4. Démarrer le processus cassandra

Lors de l'exécution instantané nodetool, il est très important que vous avez J NA mis en place et travaille. Cela comprend:

  1. Ayant jna.jar dans le répertoire lib de Cassandra et:
  2. Courir Cassandra en tant que root, ou
  3. L'augmentation de la limite de verrouillage mémoire en utilisant 'ulimit -l' ou quelque chose comme/etc/security /limits.conf

Si tout est correct, vous devriez voir un message à propos de "mlockall" dans les journaux au démarrage.

L'autre point à surveiller est l'utilisation de votre espace disque; cela va augmenter au fur et à mesure que les compactions se produisent et que les anciens SSTables sont remplacés (mais leurs instantanés restent).