/tmpの内容は一定時間が経過すると削除されるべきであることが知られている。
私の場合、私たちのマシン(redhatバージョン7.2)は次のように設定されました。
ご覧のとおり、クリーンアップをトリガーするサービスは/tmp
24時間(1d)ごとにアクティブになります。
systemd-tmpfiles-clean.timer
マイコンピュータから:
more /lib/systemd/system/systemd-tmpfiles-clean.timer
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
ルールを担当する文書です。これらの規則に従い、ファイル/フォルダが10日より古い場合は削除されることがわかります(これは私が理解したものなので、私が間違っている場合は修正してください)。
ルールは次のとおりです。
more /usr/lib/tmpfiles.d/tmp.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# See tmpfiles.d(5) for details
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
しかし、hadoopクラスタがあるので、ここには/tmp
何千もの空のフォルダとファイル、そして非常に大きなコンテンツを含むフォルダとファイルが含まれていることがわかりました。
例:
drwx------ 2 hive hadoop 6 Dec 19 13:54 2d069b18-f07f-4c8b-a7c7-45cd8cfc9d42_resources
drwx------ 2 hive hadoop 6 Dec 19 13:59 ed46a2a0-f142-4bff-9a7b-f2d430aff26d_resources
drwx------ 2 hive hadoop 6 Dec 19 14:04 ce7dc2ca-7a12-4aca-a4ef-87803a33a353_resources
drwx------ 2 hive hadoop 6 Dec 19 14:09 43fd3ce0-01f0-423a-89e5-cfd9f82792e6_resources
drwx------ 2 hive hadoop 6 Dec 19 14:14 f808fe5b-2f27-403f-9704-5d53cba176d3_resources
drwx------ 2 hive hadoop 6 Dec 19 14:19 6ef04ca4-9ab1-43f3-979c-9ba5edb9ccee_resources
drwx------ 2 hive hadoop 6 Dec 19 14:24 387330de-c6f5-4055-9f43-f67d577bd0ed_resources
drwx------ 2 hive hadoop 6 Dec 19 14:29 9517d4d9-8964-41c1-abde-a85f226b38ea_resources
drwx------ 2 hive hadoop 6 Dec 19 14:34 a46a9083-f097-4460-916f-e431f5790bf8_resources
drwx------ 2 hive hadoop 6 Dec 19 14:39 81379a84-17c8-4b24-b69a-d91710868560_resources
drwx------ 2 hive hadoop 6 Dec 19 14:44 4b8ba746-12f5-4caf-b21e-52300b8712a5_resources
drwx------ 2 hive hadoop 6 Dec 19 14:49 b7a2f98b-ecf2-4e9c-a92f-0da31d12a81a_resources
drwx------ 2 hive hadoop 6 Dec 19 14:54 2a745ade-e1a7-421d-9829-c7eb915982ce_resources
drwx------ 2 hive hadoop 6 Dec 19 14:59 9dc1a021-9adf-448b-856d-b14e2cb9812b_resources
drwx------ 2 hive hadoop 6 Dec 19 15:04 5599580d-c664-4f2e-95d3-ebdf479a33b9_resources
drwx------ 2 hive hadoop 6 Dec 19 15:09 d97dfbb5-444a-4401-ba58-d338f1724e68_resources
drwx------ 2 hive hadoop 6 Dec 19 15:14 832cf420-f601-4549-b131-b08853339a39_resources
drwx------ 2 hive hadoop 6 Dec 19 15:19 cd1f10e2-ad4e-4b4e-a3cb-4926ccc5a9c5_resources
drwx------ 2 hive hadoop 6 Dec 19 15:24 19dff3c0-8024-4631-b8da-1d31fea7203f_resources
drwx------ 2 hive hadoop 6 Dec 19 15:29 23528426-b8fb-4d14-8ea9-2fb799fefe51_resources
drwx------ 2 hive hadoop 6 Dec 19 15:34 e3509760-9823-4e30-8d0b-77c5aee80efd_resources
drwx------ 2 hive hadoop 6 Dec 19 15:39 3c157b4d-917c-49ef-86da-b44e310ca30a_resources
drwx------ 2 hive hadoop 6 Dec 19 15:44 b370af30-5323-4ad5-b39e-f02a0dcdc6bb_resources
drwx------ 2 hive hadoop 6 Dec 19 15:49 18a5ea21-30f9-45a8-8774-6d8200ada7ff_resources
drwx------ 2 hive hadoop 6 Dec 19 15:54 ee776a04-f0e8-4295-9872-f8fc6482913e_resources
drwx------ 2 hive hadoop 6 Dec 19 15:59 f5935653-0bf6-4171-895a-558eef8b0773_resources
drwx------ 2 hive hadoop 6 Dec 19 16:04 e80ea30b-c729-48a2-897d-ae7c94a4fa04_resources
drwx------ 2 hive hadoop 6 Dec 19 16:09 fde6f7e4-89bd-41b4-99d3-17204bf66f05_resources
コンテンツが/tmp
いっぱいで、サービスからそのコンテンツを削除できないかどうか心配です。
/tmp
したがって、以下に基づいてフォルダとファイルを削除しようとしています。
各フォルダ/ファイルは1日以上経過すると削除されます。
そしてサービスは1時間ごとに始まります
だから私たちは以下を設定しようとしています:
OnUnitActiveSec=1h ( in file /lib/systemd/system/systemd-tmpfiles-clean.timer )
v /tmp 1777 root root 1d ( in file /usr/lib/tmpfiles.d/tmp.conf )
今新しい設定を使用していますか?
第二に、一度セットアップが完了したら、それを機能させるために何が必要ですか?
答え1
この組み合わせは確かに効果があるでしょう。ただし、/tmp
毎時間すべてを削除するよりも、リソースファイルとディレクトリのみを削除する方が良いでしょう。
R /tmp/*_resources
systemd および tmpfiles 構成に対する変更は次のとおりです。いいえ/usr
またはで行うことができます/lib
。代わりに、その上書きをに入れてください/etc
。
echo 'R /tmp/*_resources' >> /etc/tmpfiles.d/hadoop
cp /lib/systemd/system/systemd-tmpfiles-clean.timer \
/etc/systemd/system/systemd-tmpfiles-clean.timer
$EDITOR /etc/systemd/system/systemd-tmpfiles-clean.timer
ファイルを変更したり、/usr
アップグレード/lib
処理中に競合が発生することがあります。
すでにファイルを変更している場合は、必ず使用してくださいsystemctl daemon-reload
。それ以外の場合、systemd
タイマーの変更は受信されません。