2010-05-20 2 views
0

Nous avons un petit utilitaire qui trouve des éléments inutilisés sur notre serveur et les zips puis les déplace c'est écrit en jRuby. Lorsque nous allons exécuter cela sur les serveurs à nettoyer, ils n'ont plus de mémoire avant de pouvoir terminer l'opération de nettoyage. La mémoire Java est aussi élevée que nous pouvons l'obtenir pour fonctionner de manière stable sur 32 bits et nous ne pouvons pas passer à 64 bits en ce moment, c'est environ 1800m de taille de tas maximum. Il y a aussi notre application principale que nous aimerions éviter de fermer. Les zips que le système crée sont 800megs plus y at-il un moyen de le faire et de ne pas avoir le fichier zip entier ouvert en mémoire? Pouvez-vous exécuter zip via la ligne de commande?jRuby Zip de mémoire

+0

Quelle bibliothèque ZIP utilisez-vous? Les fichiers zip peuvent être créés en utilisant la mémoire à espace constant. –

+0

Juste le 'zip/zip' de jruby –

+0

La gemme rubyzip, peut-être, vous utilisez? Ouais, je suggérerais de déplacer le fichier dans un répertoire temporaire, puis d'exécuter gzip par rapport à celui-ci ou pas. – rogerdpack

Répondre

1

Vous pouvez également regarder pbzip2, vous aurez toujours besoin de tar pour faire l'archivage de plusieurs fichiers.

+0

C'est une bonne idée à regarder Je vais vérifier. –