mysqldump 動いてる時間に同サーバで GNU social とか Nextcloud とかの mysql を利用しているアプリケーションが重くて使い物にならないです.nice + ionice は指定していますが効いてない感じ.
dump した sql を圧縮している xz コマンドが cpu を1 core 使い潰しているようです.このマシンは2 core あるのですが,もう1つの core もその他の処理でほぼ使い切って待ちが出ているような感じ.
$ vmstat 1 10 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 328212 264788 212260 5628192 1 2 35 160 2 15 35 9 44 12 0 1 1 328212 259136 212264 5628192 0 0 0 191 1497 3132 63 6 19 12 0 1 1 328212 252492 212264 5628192 0 0 0 88 959 1716 81 6 7 6 0 2 1 328212 248264 212264 5628196 0 0 0 114 973 1887 85 3 7 5 0 2 0 328212 242572 212264 5628196 0 0 0 85 972 1967 74 5 15 5 0 4 0 328212 241664 212100 5624380 0 0 0 97 1106 4226 91 7 2 2 0 2 1 328212 234268 212100 5624384 0 0 0 140 1013 1815 70 5 19 7 0 3 0 328212 235760 211944 5620076 0 0 0 2461 1289 4063 94 4 1 0 0 1 0 328212 229656 211944 5620080 0 0 0 110 953 1685 61 6 18 15 0 1 0 328212 224616 211952 5620072 0 0 0 151 983 1683 84 2 8 6 0
pv -L で帯域絞ってみました.
cpu の様子を見ながらだんだん絞っていって 128k 迄絞ってやっと xz の cpu 25〜40% 位になりました.この状態だと普通に使える感じです.
しばらくこれで試してみます.
pv で帯域制限
$ time sh -c "nice -n 19 ionice -c 3 mysqldump --defaults-file=/backup/micro/.my-backup.cnf --single-transaction --quick --all-databases --events | pv -L 128k 2>/dev/null | nice -n 19 ionice -c 3 xz -9 > /dev/null" real 127m16.113s user 34m30.508s sys 0m23.428s
cronでの実行
$ sudo -u backup crontab -l | grep mysqldump 14 3 * * * umask 0266 && nice -n 19 ionice -c 3 /usr/bin/mysqldump --defaults-file=/mnt/backup/micro/.my-backup.cnf --single-transaction --quick --all-databases --events | pv -L 128k 2>/dev/null | nice -n 19 ionice -c 3 /usr/bin/xz -9 > /mnt/backup/micro/`date +\%F_\%T_$$`.sql.xz
環境
$ dpkg-query -W mysql-client-5.7 pv xz-utils mysql-client-5.7 5.7.23-0ubuntu0.16.04.1 pv 1.6.0-1 xz-utils 5.1.1alpha+20120614-2ubuntu2 $ lsb_release -d Description: Ubuntu 16.04.5 LTS $ uname -m x86_64 $ grep -m1 model\ name /proc/cpuinfo model name : AMD Athlon(tm) II Neo N36L Dual-Core Processor
One thought to “mysqldump を pv で制限”