サーバー間のログファイル同期プロセスを高速化する必要があります。
ログを生成するマシン(LOGMACHINE)は、次のようにツリーにログを生成します。
/Files
/Files/LOGS1/
/Files/LOGS1/logFiles/
/Files/LOGS1/logFiles/typeLog1A
/Files/LOGS1/logFiles/typeLog1B
/Files/LOGS1/logFiles/typeLog1C
/Files/LOGS1/logFiles/typeLog1C/fileLog1C-20210113-0900.xml.gz
/Files/LOGS1/logFiles/typeLog1C/fileLog1C-20210113-0915.xml.gz
/Files/LOGS1/logFiles/typeLog1C/fileLog1C-20210113-0930.xml.gz
/Files/LOGS1/logFiles/typeLog2A
/Files/LOGS1/logFiles/typeLog2A/fileLog2A-20210113-0900.xml.gz
/Files/LOGS1/logFiles/typeLog2A/fileLog2A-20210113-0915.xml.gz
/Files/LOGS1/logFiles/typeLog2A/fileLog2A-20210113-0930.xml.gz
/Files/LOGS2/
/Files/LOGS2/logFiles/
/Files/LOGS2/logFiles/typeLog1A
/Files/LOGS2/logFiles/typeLog1B
/Files/LOGS2/logFiles/typeLog1C
/Files/LOGS2/logFiles/typeLog1C/fileLog1C-20210113-0900.xml.gz
/Files/LOGS2/logFiles/typeLog1C/fileLog1C-20210113-0915.xml.gz
/Files/LOGS2/logFiles/typeLog1C/fileLog1C-20210113-0930.xml.gz
/Files/LOGS2/logFiles/typeLog2A
/Files/LOGS2/logFiles/typeLog2A/fileLog2A-20210113-0900.xml.gz
/Files/LOGS2/logFiles/typeLog2A/fileLog2A-20210113-0915.xml.gz
/Files/LOGS2/logFiles/typeLog2A/fileLog2A-20210113-0930.xml.gz
typeLog1*
約4000個のフォルダと9000個のフォルダがあります。typeLog2*
各フォルダには15分ごとに新しいファイルがあります。
2 台のサーバーがあり、SERV1 はフォルダを同期し、typeLog1*
SERV2 はフォルダを同期し、typeLog2*
両方とも LOGMACHINE で同期します。各サーバーは LOGS1 および LOGS2 フォルダーを同期します。
現在、このアプリを使用しており、rsync
LOGSフォルダの1つを取得するのに30分しかかかりません。これにより、ファイルあたり約30分〜1時間程度の遅延が発生します。
rsync
複数を並列に実行するソリューションを考え出しました。残念ながら、並列ssh
に実行できるセッションは8つだけです。これは、ログが生成されるマシンの制限です。
限界:
- 使用すべき
ssh
- ログが生成されたコンピュータにソフトウェアをインストールできません。
rsync
このプロセス、使用、または代替のスピードを上げる方法はありますか?
修正する:
現在rsyncs
:
SERV1から:
rsync -avz --rsync-path=/usr/local/bin/rsync --ignore-existing --delete --files-from=<(ssh user@logmachine 'cd /home/user/Files/LOGS1/logFiles/; find . -mtime -1 -type f -name "*fileLog1*.xml.gz"') user@logmachine:/home/user/Files/LOGS1/logFiles/ Files/LOGS1/logFiles/ rsync -avz --rsync-path=/usr/local/bin/rsync --ignore-existing --delete --files-from=<(ssh user@logmachine 'cd /home/user/Files/LOGS2/logFiles/; find . -mtime -1 -type f -name "*fileLog1*.xml.gz"') user@logmachine:/home/user/Files/LOGS2/logFiles/ Files/LOGS2/logFiles/
SERV2から:
rsync -avz --rsync-path=/usr/local/bin/rsync --ignore-existing --delete --files-from=<(ssh user@logmachine 'cd /home/user/Files/LOGS1/logFiles/; find . -mtime -1 -type f -name "*fileLog2*.xml.gz"') user@logmachine:/home/user/Files/LOGS1/logFiles/ Files/LOGS1/logFiles/ rsync -avz --rsync-path=/usr/local/bin/rsync --ignore-existing --delete --files-from=<(ssh user@logmachine 'cd /home/user/Files/LOGS2/logFiles/; find . -mtime -1 -type f -name "*fileLog2*.xml.gz"') user@logmachine:/home/user/Files/LOGS2/logFiles/ Files/LOGS2/logFiles/
このフォルダには他のファイルもあるため、ファイル内のパターンを見つける条件が必要です。
ベストアンサー1
tar.gzを使用してログを圧縮し、rsyncを使用してコピーし、コピープロセスのタイミングを確認します。