動作環境
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)
NCAR Command Language Version 6.3.0
for WRF3.7.1, WPS3.7.1
openmpi-1.8.x86_64 とその-devel
mpich.x86_64 3.1-5.el6とその-devel
gcc version 4.4.7 (とgfortran)
for WRF3.9, WPS3.9
Open MPI v2.1.1
gcc version 4.9.2 (とgfortran; devtoolset-3使用)
NetCDF v4.4.1.1, NetCDF (Fortran API) v4.4.4
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
Python 3.6.0 on virtualenv
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
date (GNU coreutils) 8.4
tmux 1.6-3.el6
35GBのデータを別のサーバーからscpにて取得中。
遅そうなので、取得中に速度を測定するPython scriptを組んでみた。
関連
処理
-
du -k
の最後に表示されるディレクトリサイズを使う - インターバル時間の前後でのサイズの変化を取得する
- ある程度の速度だけ知りたいので、精度は望まない
code
check_dirsize_180226.py
import subprocess as sb
import time
def get_dir_size():
CMD = 'du -k'
res = sb.getoutput(CMD)
res = res.replace('\t', '')
res = res.replace('.', '')
return int(res.split('\n')[-1])
INTERVAL_SEC = 5
dirsiz1 = get_dir_size()
time.sleep(INTERVAL_SEC)
dirsiz2 = get_dir_size()
print(dirsiz1, 'kB')
print(dirsiz2, 'kB')
inkB = ((dirsiz2 - dirsiz1) / INTERVAL_SEC)
print('%dkB /sec' % inkB)
print('%dMB /sec' % (inkB / 1024))
run
$ python3 check_dirsize_180226.py
20670836 kB
20724596 kB
10752kB /sec
10MB /sec
35GBあるので、あと1536秒(25分)程度かかる。
使用環境が特殊なので速度が出ない(未解決)。
scp -C
scp -C
にしてみた。
ばらつきはあるが、平均的に2倍の速度になった。
(補足: 当然、bz2などの圧縮済みのファイルに対しては速くはならない)。
$ python3 check_dirsize_180226.py
739188 kB
882384 kB
28639kB /sec
27MB /sec
$ python3 check_dirsize_180226.py
1776460 kB
1890544 kB
22816kB /sec
22MB /sec
$ python3 check_dirsize_180226.py
2733952 kB
2819580 kB
17125kB /sec
16MB /sec
やり直したので、35GB / 20MB = 1792秒かかる。
(将来の処理時間短縮につながるので、今回の処理時間増加は問題ない)。