/ tmp файлы заполняются верными файлами - PullRequest
1 голос
/ 13 июля 2011

Когда Jenkins запускает сборку maven, / tmp заполняется сотнями секунд surefire839014140451157473tmp, как явно перенаправить в другой каталог во время сборки. Для сборки клевера он заполняется сотнями из grover53460334580.jar? Любая идея преодолеть это?

И кто-нибудь знает точный шаг за шагом, чтобы создать виртуальный диск, чтобы я мог перенаправить верный материал на этот виртуальный диск? Сэкономит ли это время записи на жесткий диск?

Спасибо

1 Ответ

0 голосов
/ 13 июля 2011

Многие программы учитывают переменные окружения TMPDIR (а иногда и TMP).Может, Дженкинс использует API, которые их уважают?Попробуйте:

TMPDIR=/path/to/bigger/filesystem jenkins

при запуске Jenkins.(Или как бы вы его ни запустили - он запускается как демон и имеет сценарий оболочки для его запуска?)

Там может принести некоторую выгоду производительности при использовании файловой системы на основе ОЗУ- ext3, ext4 и подобные журнализированные файловые системы будут упорядочивать записи на диск, и даже быстрая последовательность fd=open(O_CREAT); unlink(fd);, вероятно, потребует как обновлений журнала на диске, так и обновлений каталогов.(Домашнее задание: проверьте это.) Файловая система на основе ОЗУ не будет вести журналирование и может записывать или не записывать что-либо на диск (в зависимости от того, какой файл вы выбрали).

Существует два основных варианта: ramfs - очень простое окно в механизм кэширования ядра.Отсутствует резервное копирование ваших файлов на диск и ограничения памяти.Вы можете очень быстро заполнить всю свою память одним из них и понести очень ужасные последствия.(Практически ни одна программа не справляется с работой вне диска, и OOM-killer не может освободить эту память.) См. Файл ядра Linux Documentation/filesystems/ramfs-rootfs-initramfs.txt.

tmpfs - небольшое изменениеиз ramfs - вы можете указать верхний предел пространства, которое он может выделить (-o size) и , кеш страниц может обмениваться данными с разделами подкачки или файлами подкачки - что является отличнымбонус, так как ваша память может быть значительно лучше использована в других местах, таких как хранение вашего компилятора, компоновщика, исходных файлов и объектных файлов в ядре.См. Файл ядра Linux Documentation/filesystems/tmpfs.txt.

Добавление этой строки к вашему /etc/fstab изменит /tmp глобально:

tmpfs   /tmp    tmpfs   defaults    0 0

(по умолчанию разрешено до половины вашей оперативной памятидля использования в файловой системе. Измените defaults, если вам нужно.)

Если вы хотите смонтировать tmpfs где-то еще, вы можете;возможно, объедините это с переменной среды TMPDIR, описанной выше, или узнайте о новых функциях разделяемого поддерева в Documentation/filesystems/sharedsubtree.txt или упростите через pam_namespace, чтобы сделать его видимым только для ваших Jenkins и дочерних процессов.

...