PR1719์ ๋ณํฉ ๋๋ถ์ restic์ ๋ณต์์ด _way_ ๋ ๋นจ๋ผ์ก์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ ํ ๋ ๋น ๋ฅผ ์ ์์ต๋๋ค.
ํ ์คํธ ๋ชฉ์ ์ผ๋ก ์ ์ฉ i3.8xlarge EC2 ์ธ์คํด์ค์ ๋์ผํ ๋ฆฌ์ (us-west-1)์ ๋๋จธ์ง AWS S3 ๋ฒํท์์ ๋ณต์ํ์ต๋๋ค. ๋ณต์์ ์ธ์คํด์ค์ 4x1.9TB nvme์ ๋ํด ์งํ๋์์ผ๋ฉฐ, ์๋์ xfs ํ์ผ ์์คํ ์ด ์๋ LVM์ ํตํด ์คํธ๋ผ์ดํ๋ RAID-0์ ๋๋ค. ์ธ์คํด์ค๋ ์ด๋ก ์ ์ผ๋ก S3์ ๋ํด 10gbit/sec์ ๋์ญํญ์ ๊ฐ์ต๋๋ค.
filerestorer.go์ workerCount๊ฐ 32(์ปดํ์ผ๋ ์ ํ 8์์)๋ก ์ฆ๊ฐํ๋ฉด restic์ ํ๊ท ํ์ผ ํฌ๊ธฐ๊ฐ 8KB์ด๊ณ ์ต๋ ํ์ผ ํฌ๊ธฐ๊ฐ 364GB์ธ 228k ํ์ผ์ ํผํฉ์ ํ๊ท 160mbit/sec๋ก ๋ณต์ํฉ๋๋ค.
์ด์ ๋นํด --transfers=32๋ฅผ ์ฌ์ฉํ๋ rclone์ ๋์ผํ ๋ฒํท์ ๋ฐ์ดํฐ๋ฅผ 5636mbit/sec์ ์๋๋ก 30๋ฐฐ ์ด์ ์ด๋ํฉ๋๋ค.
์ฌ๊ณผ ๋ ์ฌ๊ณผ ๋น๊ต๊ฐ ์๋๋๋ค. Restic ๋ฐ์ดํฐ Blob์ ํฌ๊ธฐ๋ 8KB๊ฐ ์๋ 4096KB์ด๋ฉฐ ํ์ผ์ ์ด๊ฑฐ๋ ๋ซ์ ๋ ํ์คํ _์ผ๋ถ_ ์ค๋ฒํค๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์ ํ์ ์ธ ๋ณ๋ชฉ ํ์์ ์ง์ ํ ๋งํผ ์ถฉ๋ถํ ํฐ ์ฐจ์ด์ ๋๋ค.
๋๋ ๋ฌผ๊ฑด์ ํ ์คํธํ๊ฑฐ๋ ๊ณ์ธก์ ์ ๊ณตํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์์ ๋๋ฆด ์ ์์ด ๊ธฐ์ฉ๋๋ค!
160mbit/sec๋ ์ค์ ๋ก ๋๋ฆฌ๊ฒ ๋ณด์ ๋๋ค. ๋๋ 1Gbps ftth ์ฐ๊ฒฐ์ ํตํด onedrive์์ ๋ค์ด๋ก๋ํ๋ ์์ macbook pro์์ 200Mbps์ ๊ฐ๊น์์ง๊ณ ์์์ต๋๋ค. ๊ทํ์ ์์คํ ๋ฐ ์ ์ฅ์์ ๋ํ ์ก์ธ์ค ์์ด๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋งํ ์ ์์ง๋ง ๋ค์์ ํน์ ์์ ์์ด ๋ฌธ์ ๋ฅผ ์ขํ ์ ์๋ ๋ช ๊ฐ์ง ์ฌํญ์ ๋๋ค.
์๋ ํ์ธ์!
๋ต์ฅ์ ๋ณด๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ํํค์น๋ ๊ฒ์ด ํฅ๋ฏธ๋ก์ ๋ค.
tl;dr: s3 ์ฐ๊ฒฐ์ ๋๋ฆฌ๋ ๊ฒ์ด ํต์ฌ์ด์ง๋ง ์ ๊ณตํ๋ ์ฑ๋ฅ ํฅ์์ ์ด์ํ๊ฒ๋ ์ผ์์ ์ ๋๋ค.
๋์ญํญ ๋ฒํธ๋ kbps์ด๋ฉฐ 10๋ถ์ ๊ฑธ์ณ 3์ด ๊ฐ๊ฒฉ์ผ๋ก ์ธก์ ๋์์ต๋๋ค. restic ์คํ์ ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๋ restic์ด ํ์ผ์ ์ค์ ๋ก ๋ณต์ํ๊ธฐ ์์ํ _after_ ๋ฐ์ดํฐ ์์ง์ ์์ํ์ต๋๋ค(์ฆ, ์์ ์๊ฐ๊ณผ restic์ด ๋๋ ํ ๋ฆฌ ๊ณ์ธต์ ์ฌ์์ฑํ๋ ์คํ ์์ ์ ์๋นํ ์๊ฐ์ ์ ์ธํฉ๋๋ค. ๋ชจ๋ ์คํ ๋์, ์ธ์คํด์ค๋ 25%๋ฅผ ์ด๊ณผํ์ง ์์์ต๋๋ค.
workerCount๋ฅผ ๋๋ฆฌ๋ฉด ์ฝ๊ฐ์ ์ถฉ๋์ด ๋ฐ์ํ์ง๋ง S3 ๋์์ฑ์ ์ค์ ์น๋ฆฌ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ ฅํ๊ฒ ์์ํ๋ ๋์(๋๋ก๋ rclone ์๋์ ๊ฐ๊น์์ง๊ธฐ๋ ํจ!) ์๋๊ฐ ๊ฐ์๊ธฐ ๋จ์ด์ง๊ณ ๋๋จธ์ง ์คํ ๊ธฐ๊ฐ ๋์ ์ ์ง๋ฉ๋๋ค. restic์ ๋ํ "[๊ฒฝ๋ก ์์ ๋จ]์ ๋ํ ์ค๋ฅ ๋ฌด์: ์บ์ ์ฉ๋์ด ์ถฉ๋ถํ์ง ์์: ์์ฒญ๋ 2148380, ์ฌ์ฉ ๊ฐ๋ฅํ 872640"๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด ์ค๋ฅ๋ ๋ ๋ฎ์ s3 ๋์์ฑ๊ณผ ํจ๊ป ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ณด์๋ค์ํผ rclone ์ฑ๋ฅ์ ๋๊ฒ ์์ํ์ฌ ๋๊ฒ ์ ์ง๋๋ฏ๋ก ์ฐ๊ธฐ๊ฐ ์ธ์คํด์ค์ ๋ฒํผ ์บ์๋ก ์ด๋ํ ๋ค์ ๋์คํฌ๋ก ํ๋ฌ์๋ ๋ ์ ์ง๋๋ ์ํฉ์ด ์๋๋๋ค. nvme ์ด๋ ์ด๋ ์ฒ๋ฆฌ๋ ์ธก๋ฉด์์ ๋คํธ์ํฌ ํ์ดํ๋ณด๋ค ๋น ๋ฆ ๋๋ค.
์์ ๋ด์ฉ์ ๊ฐ์ํ ๋ ํฉ๋ฆฌ์ ์ธ ์๋๋ฅผ ์ป์ผ๋ ค๋ฉด S3 ๋์์ฑ์ ๋์ด๋ ๊ฒ์ด ํ์ํ์ง๋ง ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ์ด์ (๋ฐ ์บ์ ์ค๋ฅ์ ๊ด๋ จ์ด ์๋์ง ์ฌ๋ถ)๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค.
ํ ์คํธ์ ์ฌ์ฉํ ์ ์๋ ๋น ๋ฅธ i3 ์ธ์คํด์ค์ ์ผ๋ถ s3 ๊ณต๊ฐ ๋ฐ ๋์ญํญ์ ๋ง๋๋ ๊ฒ์ด ๋์์ด ๋๋ค๋ฉด ์ ์๊ฒ ์๋ ค์ฃผ์ญ์์ค. ๊ธฐ๊บผ์ด ํ์ํด ์ฃผ์ญ์์ค.
233mbit/sec ๊ณฑํ๊ธฐ 32๋ 7456์ด๋ฉฐ 8.5gbit/sec๋ณด๋ค ์ฝ๊ฐ ์์ต๋๋ค. ์ด์ํฉ๋๋ค. ๋จ์ผ ์ค๋ ๋ ๋ค์ด๋ก๋๊ฐ ๋ค์ค ์ค๋ ๋ ๋ค์ด๋ก๋์ ์คํธ๋ฆผ๋น ์ฒ๋ฆฌ๋๋ณด๋ค ๋น ๋ฅผ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
๋๋ restic์ด ๋์ผํ ํฉ์ ๊ณ์ํด์ ๋ค์ ๋ค์ด๋ก๋ํ์ง ์๋์ง ํ์ธํ๋ ค๊ณ ํ์ต๋๋ค. ์ ์๊ฐ์ ๊ทธ๋ํ๋ ์ฌ๋ค์ด๋ก๋๊ฐ ๋ฌธ์ ๊ฐ ์๋์ ๋ณด์ฌ์ฃผ๋ฏ๋ก ์ ์ด๋ ์ง๊ธ์ ์๋๋๋ค. ๋ฐ๋ผ์ ๋ ๋ง์ ํต๊ณ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
๊ทธ๋ํ ์ค์ผ์ผ์ ํ์ธํ ์ ์์ต๋๊น? rclone์ "1,000,000kbps"์ธ ๊ฒฝ์ฐ "1000000"์ผ๋ก ํ์๋ ์ค ์ฃผ์๋ฅผ ๋งด๋๋ฉฐ, ์ด๋ "1Gbps"๋ฅผ ์๋ฏธํ๋ฉฐ ์์ ์ธ๊ธํ "8.5 gbit/sec" ์ซ์์ ์ผ์นํ์ง ์์ต๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ๊ฐ๋ณ ํ์ผ์ ์์ฐจ์ ์ผ๋ก ๋ณต์๋ฉ๋๋ค. 233mbit/s์์ 364GB ๋ค์ด๋ก๋๋ ์ฝ 3.5์๊ฐ์ด ์์๋๋ฉฐ, ํฉ๋น ์ค๋ฒํค๋์ ์ํธ ํด๋ ์ผ๋ก ์ธํด ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์ด ๋ชจ๋๋ ์์ฐจ์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค. ๋๋จธ์ง ๋ณต์์ ์์๋๋ ์๊ฐ์ ๋ชจ๋ฅธ ์ฑ 3.5์๊ฐ์ด ์ค์ํ์ง ์์ ๊ฒ์ผ๋ก ๋ฒ๋ฆด ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค.
not enough cache capacity
์ค๋ฅ์ ๊ฒฝ์ฐ AveragePackSize ๋ฅผ ์ ์ฅ์์์ ๊ฐ์ฅ ํฐ ํฉ ํ์ผ์ ํฌ๊ธฐ๋ก ๋๋ฆฌ์ญ์์ค(์ผ๋ง๋ ํฌ๋์? btw?) ๊ทธ๋ฆฌ๊ณ ์บ์ ํฌ๊ธฐ๋ฅผ ๋ ์ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํด์ผ ํฉ๋๋ค. ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ์์ง ๋๋ต.
์๋ ํ์ธ์!
์ฃ์กํฉ๋๋ค. ๊ทธ๋ํ์ ์ค์ผ์ผ์ kbit/sec๊ฐ ์๋๋ผ KB/sec์ ๋๋ค. ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ํ์ 1,012,995๋ 8.1gbit/sec์ ๋๋ค.
ํ์ผ์ด ์์ฐจ์ ์ผ๋ก ๋ณต์๋๋ ๊ฒ์ ์ดํดํ์ง๋ง ๋จ์ผ ํ์ผ์ ๋ํ ํฉ ๊ฒ์์ ๋ํ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ์๋ค๋ ๊ฒ์ ์ดํดํ์ง ๋ชปํ์ต๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ์ ํ ์์๊ฐ ๋๊ธฐ ๋๋ฌธ์ ํฐ ํ์ผ์ด ์๋ ๋ฐฑ์ ์ ๊ฒฝ์ฐ ํ์คํ ์ฝ๊ฐ์ ๊ฑธ๋ฆผ๋์ ๋๋ค. ๊ทธ๋ฐ ์ด์ ๋ก ์ฌ๊ธฐ์ ์ฝ๊ฐ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ์์ผ๋ฉด ํ์์ ์ผ ๊ฒ์ ๋๋ค.
10๊ฐ์ ๋ฌด์์ ๋ฒํท์ ์ํ๋งํ ๋ ์ต๋ ํฉ ํฌ๊ธฐ๋ 12MB ๋ฐ๋ก ์๋์ด๊ณ ํ๊ท ํฉ ํฌ๊ธฐ๋ 4.3MB์ ๋๋ค.
๋ ๋ง์ ์์ ์์ S3 ์ฐ๊ฒฐ๋ก ์ธํด (workerCount + 5) * averagePackSize์ packCacheCapacity๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์๋ํ๊ณ ์ค๋ฅ๊ฐ ์ฌ๋ผ์ง๋์ง ํ์ธํฉ๋๋ค.
๋ ๋ง์ ์์ ์์ S3 ์ฐ๊ฒฐ๋ก ์ธํด (workerCount + 5) * averagePackSize์ packCacheCapacity๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์๋ํ๊ณ ์ค๋ฅ๊ฐ ์ฌ๋ผ์ง๋์ง ํ์ธํฉ๋๋ค.
์บ์ ํฌ๊ธฐ๋ 5MB ํฉ ํ์ผ ํฌ๊ธฐ์ workerCount
๊ธฐ์ค์ผ๋ก ๊ณ์ฐ๋ฉ๋๋ค. workerCount
๋๋ฆฌ๋ฉด ์บ์ ํฌ๊ธฐ๊ฐ ๋์ด๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์๊ฑฐ๋ ์์ํ ์ฐ์ฐ์ ์ํด ๋ง์ 12MB ํ์ผ์ ์บ์ํด์ผ ํ๋ ๋ณต์์ด ํ์ํฉ๋๋ค. averagePackSize
๋ฅผ 12MB๋ก ์ฌ๋ฆฌ๋ฉด ์ด๋ ์ชฝ์ธ์ง ์ ์ ์์ต๋๋ค.
AveragePackSize๊ฐ 12๋ก ์ค์ ๋ ์บ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
๋์์ด ๋ ๋งํ ๋ค๋ฅธ ์ ๋ณด๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์! ๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค.
๋ณต์์ด ์งํ๋จ์ ๋ฐ๋ผ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ์์ค๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ณ ๋์ฉ๋ ํ์ผ๊ณผ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์!
์ธ ๊ฐ์ง ๋ค๋ฅธ ์ธ๊ณต ํ์ผ ๋ฏน์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๋์ ํ์ผ ๋ฏน์ค์์ ๋ณด๊ณ ์๋ ์ฑ๋ฅ ์ ํ๋ฅผ ์ฌํํ๋ ค๊ณ ํ์ต๋๋ค.
๋ชจ๋ ํ ์คํธ์์ c0572ca15f946c622d9c4009347dc4d6c31cba4c๋ฅผ S3 ์ฐ๊ฒฐ์ 128๋ก, workerCount๋ฅผ 128๋ก, filesWriterCount๋ฅผ 128๋ก, AveragePackSize๋ฅผ 12 * 1024 * 1024๋ก ๋๋ ธ์ต๋๋ค.
๋ชจ๋ ํ ์คํธ๋ ์ค๋ณต ์ ๊ฑฐ์ ์ํฅ์ ํผํ๊ธฐ ์ํด ์์์ ๋ฐ์ดํฐ๊ฐ ์๋ ํ์ผ์ ์ฌ์ฉํ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ํ ์คํธ์์๋ 4,000๊ฐ์ 100MB ํ์ผ์ ๋ง๋ค๊ณ ๋ฐฑ์ ํ์ผ๋ฉฐ 100๊ฐ์ ๋๋ ํฐ๋ฆฌ(์ด ~400GB)์ ๊ท ๋ฑํ๊ฒ ๋ถํ ํ์ต๋๋ค. i3.8xlarge ์ธ์คํด์ค์ ์คํธ๋ผ์ดํ nvme ๋ณผ๋ฅจ์์ ๋ฐฑ์ ๋ฐ ๋ณต์์ด ์คํ๋์์ต๋๋ค. ๋ฐฑ์ ๋ฒํท์ ์ธ์คํด์ค์ ๋์ผํ ๋ฆฌ์ ์ ์์นํ์ต๋๋ค(us-west-1).
์ด ํ์ผ ์กฐํฉ์ ํตํด ์ ์ฒด ๋ณต์์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋๋ ์๋ ์์ค ์์ด ํ๊ท 9.7gbit/sec(!)์ ์๋๋ฅผ ๋ณด์์ต๋๋ค. ์ด ์์น๋ rclone ์์น์ ๊ฐ๊ฑฐ๋ ๊ทธ ์ด์์ด๋ฉฐ ๋ณธ์ง์ ์ผ๋ก ๋ผ์ธ ์๋์ ๋๋ค. ์ด๋ ํ์์ ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ 400,000๊ฐ์ 1MB ํ์ผ์ ์์ฑํ๊ณ ๋ฐฑ์ ํ์ฌ 100๊ฐ์ ๋๋ ํฐ๋ฆฌ(๋ค์ ์ด ~400GB)์ ๊ท ๋ฑํ๊ฒ ๋ถํ ํ์ต๋๋ค.
์์ ๋์ผํ(์ฐ์ํ) ๊ฒฐ๊ณผ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋๋ ํฐ๋ฆฌ๋น 10GB ํ์ผ 1๊ฐ๋ก 40๊ฐ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ฌ๊ธฐ, ์ํฉ์ด ํฅ๋ฏธ๋ก์์ก์ต๋๋ค.
restic์ S3์ ๋ํ 40๊ฐ์ ์ฐ๊ฒฐ๋ก 40๊ฐ์ ๋์ ๋ณต์๋ง ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ณต์์ด ์ฝ๊ฐ ๋๋ฆด ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค.
๊ทธ๋ฌ๋ Restic์ ์ฐ๊ธฐ๋ฅผ ์ํด 40๊ฐ ํ์ผ์ ๋ชจ๋ ์ด๊ณ 40๊ฐ ํ์ผ์ ๋์์ ์ฐ๊ธฐ๋ฅผ ์ํํ์ง๋ง S3์ ๋ํ ๋จ์ผ TCP ์ฐ๊ฒฐ๋ง ํ ๋ฒ์ 40๊ฐ๊ฐ ์๋ ์ด๋ฆฐ ์ํ๋ก ์ ์งํฉ๋๋ค.
๋ณด๊ณ ์ถ์ ํต๊ณ๋ ๋๊ตฌ๋ฅผ ์๋ ค์ฃผ์ธ์.
"๋น ๋ฅธ" ํ ์คํธ ์ค์ 128๊ฐ์ S3 ์ฐ๊ฒฐ์ด ์๋์ง ํ์ธํ ์ ์์ต๋๊น?
์, ์์์ต๋๋ค.
๊ถ๊ธํฉ๋๋ค... ๋์ฉ๋ ํ์ผ ์ง์์ ์์งํ ์ ์ฐ์ ์์ ๋ชฉ๋ก์์ ๋์ง ์์ง๋ง ์์ผ๋ก ๋ช ์ฃผ ์์ ์ด๋ฅผ ์ดํด๋ณผ ์๊ฐ์ด ์๊ธธ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ํ๊ธฐ ์ ์ ์ด๊ฒ์ ํํค์น๊ณ ์ถ์ ์ฌ๋์ด ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์.
๋ ๋ง์ ํ ์คํธ๋ฅผ ์ํํ๋๋ฐ ์ค์ ๋ก ํ์ผ ํฌ๊ธฐ๊ฐ ์ฒญ์ด์ธ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. AWS ์ฐ๊ฒฐ ์๋ฅผ ์ฃผ๋ํ๋ ๊ฒ์ ํ์ผ ์์ ๋๋ค.
4๊ฐ์ ๋๋ ํฐ๋ฆฌ์ 128๊ฐ์ 10MB ํ์ผ์ด ์๋ restic์ 128๊ฐ์ ํ์ผ ๋ชจ๋์ ์ฐ๋ ์ค์ด๋๋ผ๋ AWS์ ๋ํ 6๊ฐ์ ์ฐ๊ฒฐ๋ง ์ฝ๋๋ค.
4๊ฐ์ ๋๋ ํ ๋ฆฌ์ 512๊ฐ์ 10MB ํ์ผ์ด ์๋ ๊ฒฝ์ฐ restic์ ํ ๋ฒ์ 128๊ฐ์ ํ์ผ์ ์ด์ด๋ ์๋ช ๋์ 18๊ฐ์ ์ฐ๊ฒฐ์ ์ฝ๋๋ค.
4๊ฐ์ ๋๋ ํฐ๋ฆฌ์ 5,120๊ฐ์ 10MB ํ์ผ์ด ์๋ restic์ ์๋ช ๋์ AWS์ ๋ํ ์ฐ๊ฒฐ์ 75๊ฐ๋ง ์ด์ด ํ ๋ฒ์ 128๊ฐ์ ํ์ผ์ ์ด์ด๋ก๋๋ค.
์ด์ํ!
Go S3 ํด๋ผ์ด์ธํธ๊ฐ http ์ฐ๊ฒฐ์ ํ๋ง ๋ฐ ์ฌ์ฌ์ฉํ์ง ์์๋ค๋ฉด ์ ๋ง ๋๋์ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋์ ์์ ์ ์์ ์ด๋ฆฐ TCP ์์ผ ์ฌ์ด์๋ ์ผ๋์ผ ์๊ด ๊ด๊ณ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ค ์ด์ ๋ก๋ ๋ณต์์ด ๋ค์ด๋ก๋๋ ํฉ์ ๋๋ฆฌ๊ฒ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ๋์ผํ S3 ์ฐ๊ฒฐ์ ์ฌ๋ฌ ์์ ์๊ฐ ๊ณต์ ํฉ๋๋ค.
๊ตฌํ ๋ณต์ก์ฑ์ ๋๋ถ๋ถ์ ๋ด๋นํ๊ณ ์ฌ๊ธฐ์ ๋ณด๊ณ ๋ ์๋ ์ ํ๋ฅผ ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ ํ์ฌ ๋์ ๋ณต์ ํ๋ก๊ทธ๋จ์ ๋ ๊ฐ์ง ์์ฑ์ด ์์ต๋๋ค.
๊ตฌํ์ ํจ์ฌ ๊ฐ๋จํ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฌ์ฉํ๋ฉฐ ๋ง์ ๊ฒฝ์ฐ์ ํ์ผ blob์ ์์์ ๊ด๊ณ์์ด ์์ฑํ๊ณ ์งํ ์ค์ธ ํ์ผ์ ์ํ๋ ์๋งํผ ํ์ฉํ๋ ๋ฐ ๋์ํ๋ฉด ํจ์ฌ ๋น ๋ฅผ ๊ฒ์ ๋๋ค.
๋จ์ ์ ๋ณต์์ด ๋๋ ๋๊น์ง ์ฃผ์ด์ง ํ์ผ์์ ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ๋ณต์๋์๋์ง ์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํนํ ๋ณต์์ด ์ถฉ๋ํ๊ฑฐ๋ ์ข ๋ฃ๋๋ ๊ฒฝ์ฐ ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ผ ์์คํ ์์ 10GB ํ์ผ์ ๋ณผ ์ ์์ต๋๋ค. ์ค์ ๋ก ํ์ผ ๋์ ๋ช ๋ฐ์ดํธ๋ง ๊ธฐ๋ก๋์ด ์์ต๋๋ค.
@fd0 ํ์ฌ ์์๋ถํฐ ๋๊น์ง ๋ณต์์ ๊ฐ์ ํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ์ญ๋๊น? ๊ฐ์ธ์ ์ผ๋ก, ๋๋ ๊ทธ๊ฒ์ด ๋ด ๋ถ๋ถ์ ๋ํ ์์ง๋์ด๋ง์์ ์ธ์ ํ ์ค๋น๊ฐ ๋์์ผ๋ฉฐ ๋์ํ๋ค๋ฉด ๋ ๊ฐ๋จํ ๋น์์ฐจ์ ๊ตฌํ์ โโ์ ๊ณตํ ์ ์์ต๋๋ค.
Restic์ด ํ์ค ์ถ๋ ฅ์ผ๋ก ๋ณต์์ ์ง์ํ๋์ง ๊ธฐ์ต๋์ง ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ถ๋ช ํ ์ฒ์๋ถํฐ ๋๊น์ง ๋ณต์์ ์ ์งํด์ผ ํฉ๋๋ค(ํน๋ณํ ๊ฒฝ์ฐ์ผ ์ ์์).
@ifedorenko ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋จ์ํ๋ฅผ ์ ํธํฉ๋๋ค. ํนํ ์ฑ๋ฅ ํฅ์๊ณผ ํจ๊ป๋ผ๋ฉด ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋๋ ์ฅ๋จ์ ์ ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
๋จ์ ์ ๋ณต์์ด ๋๋ ๋๊น์ง ์ฃผ์ด์ง ํ์ผ์์ ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ๋ณต์๋์๋์ง ์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์์ ๋์์ ์์ฑ๋ ์์ฒ ๊ฐ์ ํ์ผ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง ์๋ค๋ฉด ์์ฑ๋ ๋ฐ์ดํธ์ ๋ํ ํ์ผ ์ด๋ฆ์ ๋งต์ ์ฌ์ฉํ ์ ์์ต๋๊น? ๋ถ๋ช ํ ํ์ผ ์์คํ ์์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ์ง๋ ์์ง๋ง ์งํ ๋ณด๊ณ ๋ฅผ ์ํด ์ฌ์ ํ ์ํํ ์ ์์ต๋๋ค. (๊ทธ๋ฆฌ๊ณ ์ค๋จ๋ ๋ณต์์ ์ฌ๊ฐํ๋ ค๋ฉด ์๋ง๋ ํ์ผ์ blob๊ณผ ์คํ์ ์์ null์ด ์๋ ๋ฐ์ดํธ๋ฅผ ํ์ธํ๋ ๊ฒ๋ฟ์ผ๊น์? ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.)
Restic์ด ํ์ค ์ถ๋ ฅ์ผ๋ก ๋ณต์์ ์ง์ํ๋์ง ๊ธฐ์ต๋์ง ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ถ๋ช ํ ์ฒ์๋ถํฐ ๋๊น์ง ๋ณต์์ ์ ์งํด์ผ ํฉ๋๋ค(ํน๋ณํ ๊ฒฝ์ฐ์ผ ์ ์์).
๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. ๋ณต์์ ์ฌ๋ฌ ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ ๋ ์ธ์ฝ๋ฉํ๊ณ ์ด๋ป๊ฒ ๋ ๋ถ๋ฆฌํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๊ธฐ์์ ๋์์ ์์ฑ๋ ์์ฒ ๊ฐ์ ํ์ผ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง ์๋ค๋ฉด ์์ฑ๋ ๋ฐ์ดํธ์ ๋ํ ํ์ผ ์ด๋ฆ์ ๋งต์ ์ฌ์ฉํ ์ ์์ต๋๊น?
๊ฐ์ฅ ๊ฐ๋จํ ๊ตฌํ์ ๊ฐ๋ณ Blob์ ์ฐ๊ธฐ ์ํด ํ์ผ์ ์ด๊ณ ๋ซ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋๋ฌด ๋๋ฆฐ ๊ฒ์ผ๋ก ํ๋ช ๋๋ฉด ์ด๋ฆฐ ํ์ผ ํธ๋ค์ ์บ์ฑํ๊ณ ์ด๋ฏธ ์ด๋ฆฐ ํ์ผ์ ์ ํธํ๋๋ก ํฉ ๋ค์ด๋ก๋๋ฅผ ์ฃผ๋ฌธํ๋ ๋ฑ ์ฌ๋ฌ Blob ์ฐ๊ธฐ๋ฅผ ์ํด ํ์ผ์ ์ด๋ฆฐ ์ํ๋ก ์ ์งํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค.
๋ณต์์ ์ด๋ฏธ ์ด๋ค Blob์ด ์ด๋ค ํ์ผ์ ๊ธฐ๋ก๋์๊ณ ๋ฌด์์ด ์์ง ๋ณด๋ฅ ์ค์ธ์ง ์ถ์ ํฉ๋๋ค. ์ด ๋ถ๋ถ์ด ๋ง์ด ๋ฐ๋ ๊ฑฐ๋ผ๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค. ์งํ ์ํฉ์ ๋ณ๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์ถ์ ๋๋ฉฐ ๋ณ๊ฒฝ๋ ๊ฒ์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
์ค๋จ๋ ๋ณต์์ ์ฌ๊ฐํ๋ ค๋ฉด ํ์ผ์ blob๊ณผ ์คํ์ ์์ null์ด ์๋ ๋ฐ์ดํธ๋ฅผ ํ์ธํ๋ ๊ฒ๋ฟ์ผ๊น์?
Resume์ ๋์คํฌ์ ์๋ ํ์ผ์ ์ฒดํฌ์ฌ์ ํ์ธํ์ฌ ์ฌ์ ํ ๋ณต์ํด์ผ ํ๋ Blob์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๋ณต์์ด ์์ฐจ์ ์ด๋ ๋น์์ฐจ์ ์ด๋ ์๊ด์์ด ์ด๊ฒ์ด ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด, resume์ด ์ ์ ์ผ๋ก๋ถํฐ ๋ณต๊ตฌ๋๋ค๋ฉด, ์ ์ ์ ์ ๋ชจ๋ ํ์ผ ๋ธ๋ก์ด ๋์คํฌ๋ก ํ๋ฌ์๋์๋ค๊ณ ๊ฐ์ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ, ํ์ผ์ ๊ฐ๊ฒฉ์ด ์๊ฑฐ๋ ๋ถ๋ถ์ ์ผ๋ก ๊ธฐ๋ก๋ ๋ธ๋ก์ด ์์ ์ ์์ต๋๋ค.
@pmkane #2101์ ์ฌ์ฉํด๋
์ ์ ์ผ๋ก. ์ด๋ฒ ์ฃผ์ ์ฌํ์ ๊ฐ์ง๋ง ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ํ ์คํธํ๊ณ ๋ค์ ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
@ifedorenko ๋๋ ์ด PR์ ์๋ํ๊ณ
์ง(, 3172070, 0) ๋ฐํ๋ ์ค๋ฅ, 12.182749645s ์ดํ ์ฌ์๋: EOF
๋ง์คํฐ๋ ์ ๋ณต์๋ฉ๋๋ค.
๋ด ๋ณต์ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
/usr/local/bin/restic.outoforder -r s3:s3.amazonaws.com/[redacted] -p /root/.restic_pass ๋ณต์ [snapshotid] -t .
๋๋ฒ๊ทธ์ ๋์์ด ๋๋๋ก ์ ๊ณตํ ์ ์๋ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ์ญ์์ค.
์ผ๋ง๋ ๋ง์ ๋์ S3 ๋ค์ด๋ก๋ ์์ฒญ์ ํ์ฉํฉ๋๊น? 128์ด๋ผ๋ฉด 32๋ก ์ ํํ ์ ์์ต๋๊น(์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋)?
์ค๊ด๋ จ... ์ค์ ์ ์ฅ์์ ์์ธ ํ์ผ์ด ๋ช ๊ฐ ์๋์ง ์์ญ๋๊น? ๋ฉ๋ชจ๋ฆฌ ๋ณต์๊ธฐ์ ํ์ํ ์์ ์ถ์ ํ๋ ค๊ณ ํฉ๋๋ค.
์ฐ๊ฒฐ ์ ํ์ ์ง์ ํ์ง ์์์ผ๋ฏ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก 5๋ก ์ค์ ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
-o s3.connections=2 ๋ฐ -o s3.connections=1์์ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์ฌ index/ ํด๋์ 85๊ฐ์ ์ธ๋ฑ์ค Blob์ด ์์ต๋๋ค. ์ด ํฌ๊ธฐ๋ 745MB์ ๋๋ค.
ํ . ์ค๋ ๋์ค์ ์ปดํจํฐ์ ๋์ฐฉํ๋ฉด ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. Btw, "returned error, retrying"์ ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ๊ณ ์ด๋ฏ๋ก ๋ณต์ ์คํจ์ ๊ด๋ จ์ด ์๊ฑฐ๋ ๊ทธ๋ฅ red herring์ผ ์ ์์ต๋๋ค.
์ด๋ป๊ฒ ๋์ณค๋์ง ํ์คํ์ง ์์ต๋๋ค... ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ณต์ ํ๋ก๊ทธ๋จ์ด ๋ฐฑ์๋์์ ๋ชจ๋ ํฉ ํ์ผ์ ์์ ํ ์ฝ์ง ์์์ต๋๋ค. ์ง๊ธ ์์ ํด์ผ ํฉ๋๋ค. @pmkane ํ ์คํธ๋ฅผ ๋ค์ ์๋ํ ์ ์์ต๋๊น?
์์ฉ๋์ด๋ฅผ ์ค๊ฒ!
์ด ์์ ์ผ๋ก ํ์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ๋ณต์๋์์์ ํ์ธํ์ต๋๋ค. ์ง๊ธ ์ฑ๋ฅ์ ํ ์คํธ ์ค์ ๋๋ค.
์ํ๊น๊ฒ๋ ๋ง์คํฐ๋ณด๋ค ๋๋ฆฐ ๊ฒ ๊ฐ์ต๋๋ค. ๋ชจ๋ ํ ์คํธ๋ ์์์ ์ค๋ช ํ i3.8xlarge ์ธ์คํด์ค์์ ์คํ๋ฉ๋๋ค.
workerCount๊ฐ 8(๊ธฐ๋ณธ๊ฐ)์ธ ๊ฒฝ์ฐ ์๋ชป๋ ๋ถ๊ธฐ๊ฐ 86mbit/sec๋ก ๋ณต์๋์์ต๋๋ค.
workerCount๊ฐ 32๋ก ์ฆ๊ฐํ๋ฉด ํ๊ท 160mbit/sec๋ก ์กฐ๊ธ ๋ ๋์์ก์ต๋๋ค.
์ด ๋ถ๊ธฐ์ CPU ์ฌ์ฉ๋ฅ ์ ๋ง์คํฐ๋ณด๋ค ํจ์ฌ ๋์ง๋ง ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ธ์คํด์ค CPU๋ฅผ ์ต๋๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ผํ์ ๋ฐ๋ฅด๋ฉด ๋ณต์ โโUI๋ ๋ง์น ์ด๋๊ฐ์์ ์ ๊ธ์ ๋๊ณ ๊ฒฝ์ํ๋ ๊ฒ์ฒ๋ผ ๋ฌด์ธ๊ฐ๊ฐ "๊ณ ์ "๋์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
์์ธํ ๋ด์ฉ, ํ๋กํ์ผ๋ง ๋๋ ๋ณต์ ํ ํ ์คํธ ์ธ์คํด์ค๋ฅผ ์ ๊ณตํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
ํ์ธ์ ์ํด ๋ณต์์ ๋ฐ s3 ๋ฐฑ์๋ ์์ ์ ์๋ฅผ ๋ชจ๋ 32๋ก ์ค์ ํ์ต๋๊น?
๊ด์ฐฐํ ํ๋์ ์ค๋ช ํ ์ ์๋ ๋ช ๊ฐ์ง ์๊ฐ:
์ด๋ด ๊ฑฐ๊ธฐ!
์ข์์. workerCount๋ internal/restorer/filerestorer.go์์ 8 ๋๋ 32๋ก ์ค์ ๋์๊ณ -o s3.connections=32๋ ๋ ๊ฒฝ์ฐ ๋ชจ๋ restic cli๋ฅผ ํตํด ์ ๋ฌ๋์์ต๋๋ค.
๋ค์์ ์์๊ฐ ์๋ชป๋ ๋ถ๊ธฐ๊ฐ 8๋ช ์ ์์ ์๋ก ํ์ผ์ ๋ณต์ํ๋ ๋์ ์ถ์ ๋ฐ์ดํฐ์ ์ต์์ ๋ณด๊ธฐ์ ๋๋ค.
์์
์๊ฐ ์์ฃผ ๋ฐ์ํ๋ ์๋นํ(>500-1000ms) ์ผ์ ์ค์ง๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ด๊ฒ์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ 4KiB ๋ธ๋ก์์ 10GiB ์์ ๋ฐ์ดํธ๋ฅผ ์์ฑํ๋ ๊ฐ๋จํ ๋
๋ฆฝํ ํ
์คํธ๋ฅผ ์์ฑํ์ฌ ์์ํ์ต๋๋ค. ๋ด ๋ชฉํ๋ ๋ด ์์คํ
์ด ๋ฐ์ดํธ๋ฅผ ์ด๋ํ๋ ์๋๋ฅผ ํ๊ฐํ๋ ๊ฒ์ด์์ต๋๋ค. ๋๋๊ฒ๋ ์ด ํ
์คํธ๋ ๋ด macbook pro(2018, 2.6GHz Intel Core i7)์์ ์คํํ๋ ๋ฐ 18.64์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. ์ด๋ ~4.29 Gigabits/s ๋๋ 10G ์ด๋๋ท์ด ํ ์ ์๋ ๊ฒ์ ์ฝ ์ ๋ฐ์ผ๋ก ํด์๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ํธํ๋ ๋คํธ ๋๋ ๋์คํฌ I/O๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ Xoshiro256** prng๋ฅผ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. math/rand
๋ ์ฝ 2๋ฐฐ ๋ ๋๋ ธ์ผ๋ฉฐ, ์ด๋ ๋ฌผ๋ก ์์ ์์ ์์ ํ ๋ฒ์ด๋ฌ์ต๋๋ค. ์์ ์ ๋ณต์ ํ๋ก๊ทธ๋จ์ด 10G ๋คํธ์ํฌ๋ฅผ ํฌํ์ํค๊ธฐ ์ํด ์ฌ๋ฌ ์ค๋ ๋์์ Blob์ ์ฒ๋ฆฌํด์ผ ํ๋ฏ๋ก ๋ค์ค ์ค๋ ๋ net i/o ์์ฒด๋ก๋ ์ถฉ๋ถํ์ง ์๋ค๋ ๊ฒ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๋ฏธ๋ฅผ ์ํด ๋น๊ต ๊ฐ๋ฅํ Rust impl์ 3.1์ด ๋ง์ 10GiB์ ์์ ๋ฐ์ดํธ๋ฅผ ์์ฑํ๊ณ Java๋ 10.77์ด ๋ง์ ์์ฑํฉ๋๋ค. ๊ทธ๋ฆผ์ ์ด๋ :-)
ํฅ๋ฏธ๋ก์ด ํ ์คํธ!
๋๋ restic์ด ํ์ฌ ๊ฐ์ฅ ํฐ ํ์ผ์ ๋ณต์ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ฐ๋ผ ์๋๊ฐ ์ ํ๋๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ง๊ธ์ restic์ด ์ฌ๊ธฐ์์ ๋ณด๋ 160mbit/sec๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ฒ ๋จ์ผ ํ์ผ์ ๋ณต์ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ฐ๋ฆฌ์ ์ฐจ๋จ๊ธฐ๊ฐ ์๋๋๋ค.
๋ง์คํฐ์ ์ด ๋ถ๊ธฐ์์ ํ์ฌ ์ต์์ ์๋๋ฆฌ์ค๋ฅผ ์ป๊ธฐ ์ํด ๋น ๋ฅธ SSD์ S3์ 10MB ํ์ผ๋ก ๊ตฌ์ฑ๋ 100GB ํ ์คํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ช ๊ฐ์ง ์ซ์๋ฅผ ์คํํ๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์, ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ฝ๋์์ ์ง์ ์ํํด์ผ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๋ํ ๋๋ฆฐ ๋ณต์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ด๋ป๊ฒ๋ ๊ฐ์ ํ๊ณ ์ถ์ต๋๋ค... ์ด ๋ถ๋ถ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ ํ ์คํธ์ ๊ธฐ์ฌํ ์ ์๋์ง ์๋ ค์ฃผ์ธ์!
๊ฐ์ฌ ํด์!
@robvalca ์ด๋ค ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํฉ๋๊น? rclone
์ด ์ ์ฅ์๋ฅผ ๋์ ์์คํ
์ ์ผ๋ง๋ ๋นจ๋ฆฌ ๋ณต์ฌํฉ๋๊น? ์ ์ง ๋ณต์ ์๋๋ ๋ฌด์์
๋๊น?
์ง๊ธ ๋น์ฅ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฐ๋ผ์ ๋ก์ปฌ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํ ์คํธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋จ๊ณ๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ฉด ์ ๋ง ์ ์ฉํ ๊ฒ์ ๋๋ค("ํ ์คํธ ๋ฆฌํฌ์งํ ๋ฆฌ"๋ ๋ฐ์ดํฐ ๋ถํ๋๋ฆฝ๋๋ค).
@ifedorenko ์ฐ๋ฆฌ๋ S3(ceph+radosgw)๋ฅผ ๋ฐฑ์๋(์ ํฌ๊ฐ ๊ด๋ฆฌ)๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. rclone์ ์ฌ์ฉํ์ฌ repo๋ฅผ ๋ณต์ฌํ๋ ค๊ณ ์๋ํ์ผ๋ฉฐ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
rclone ๋ณต์ฌ -P ์๊ฒฉ:cboxback-aabbcc/ /var/tmp/restic/aabbcc/
์ ์ก: 127.309G / 127.309GB, 100%, 45.419MBytes/s, ETA 0s
์ค๋ฅ: 0
ํ์ธ: 0 / 0, -
์ด์ : 25435 / 25435, 100%
๊ฒฝ๊ณผ ์๊ฐ: 47m50.2s
"stock" restic 0.9.4๋ฅผ ์ฌ์ฉํ์ฌ repo๋ฅผ ๋ณต์ํ๋ ๋ฐ ~8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ 32๊ฐ์ S3 ์ฐ๊ฒฐ๊ณผ ๋์ผํ ๋์ ํธ์คํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด ํฌ๋ผ ์ค๋ ๋ ์ ์กฐ๊ธ ๋ ๋ง์ ์ ๋ณด๋ฅผ ๋ฃ์์ต๋๋ค.
๋๋ ๋น์ ์ด ํ
์คํธ ํ ์ ์๋๋ก repo๋ฅผ ์ค๋นํ๊ณ ์ค๋น๊ฐ๋๋ฉด ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ง์ ๋์์ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค!
@robvalca ๋ด out-order-restore ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์์ ์๋ํ ์ ์์ต๋๊น? ๋ถ๊ธฐ๋ ๋งค์ฐ ํฐ ํ์ผ์ ๋ณต์ ์ฑ๋ฅ์ ๊ฐ์ ํด์ผ ํ๋ฉฐ, ์ด๋ ๊ทํ๊ฐ ์ง๋ฉดํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋ถ๊ธฐ๊ฐ ๋ณต์ ์ฑ๋ฅ์ ํฅ์์ํค์ง ์์ผ๋ฉด ํ ์คํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ณต๊ฐ s3 ๋ฒํท์ ์ ๋ก๋ํ๊ณ ์ฌ๊ธฐ์ ๋ฒํท ์ด๋ฆ๊ณผ ๋ฆฌํฌ์งํ ๋ฆฌ ์ํธ๋ฅผ ๊ฒ์ํ์ญ์์ค.
@pmkane ๋ค์์ ๋์ผํ๊ฑฐ๋ ๊ฑฐ์ ๋์ผํ ํ์ผ์ ๋ณต์ํ ์ ์์ต๋๊น? ๊ทธ๊ฒ์ด ๋ ธ๋์๋ค ์ฌ์ด์ ๋ ผ์์ ์ค๋ช ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํธ์ง: ์ค์ ๋ก ์ต์ #2101์ ์ฌ์ฉํ์ฌ ๋ณต์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ๋ค์ ์๋ํ ์ ์์ต๋๊น? ๋์ผํ ํ์ผ์ ๋ํ ๋์ ์ฐ๊ธฐ ๋ฐ ์ฌ๋ฌ ํ์ผ์ ๋ํ ๋์ผํ Blob์ ๋ ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
@ifedorenko , ์ง๊ธ์ ์ฃผ๋ฌธ ์ธ ๋ฒ์ ์ด ํจ์ฌ ์ข์ต๋๋ค! ๋ด๊ฐ rclone์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ๋ ๊ฐ๊น์ด 1์๊ฐ๋ ์ฑ ๊ฑธ๋ฆฌ์ง ์์์ต๋๋ค. ๋ด ํ ์คํธ์์ ์ถ์ถํ์ฌ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ค๋ช (์ฒจ๋ถ๋ ํ๋กฏ๋ ์ฐธ์กฐํ์ธ์!):
0.9.4
์์ ํ๋ก์ธ์ค๋ 200MB/sec
์ต๊ณ ์ ์ผ๋ก ๋ ๋น ๋ฅด๊ฒ ์์๋๋ฉฐ S3 ์ธก์์ ์ด๋น ๊ฑฐ์ 50 requests
์ป์ต๋๋ค. ๋ช ๋ถ ํ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๊ณ ๋๋จธ์ง ํ๋ก์ธ์ค ๋์ ์์ฒญ์ด 1 ์ ๋๋ก ์ค์ด๋ค๊ณ ์๋๋ ~ 5MB/sec
์
๋๋ค.40MB/sec
๋ฐ ~ 8
S3 ์์ฒญ์ด ๋ชจ๋ ํ๋ก์ธ์ค ๋์ ์์ ์ ์
๋๋ค.32๊ฐ์ ์ฐ๊ฒฐ:
Created 2197 directories, listed 171.141 GiB in 20930 files
Restored 171.136 GiB in 170258 files
real 57m54.588s
user 229m25.229s
sys 6m51.763s
64๊ฐ ์ฐ๊ฒฐ
real 53m13.876s
user 242m57.081s
sys 7m12.455s
0.9.4
real 16m6.966s
user 25m4.116s
sys 4m19.424s
0.9.4-ooo:
real 8m14.375s
user 14m30.107s
sys 3m41.538s
๋ฐ๋ผ์ ๋์ฉ๋ ํ์ผ์ ๊ฐ์ ํ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํฉ๋๋ค!!
๊ทธ๋ฆฌ๊ณ btw, ๋ณต์์ ์๋ก์ด ์งํ๋ฅ ๋ณด๊ธฐ๊ฐ ์ข์ต๋๋ค!! 8)
๋ค๋ฅธ ํ ์คํธ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ์๋ ค์ฃผ์ธ์.
๊ฐ์ฌ ํด์!
ํผ๋๋ฐฑ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. @robvalca , ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
- ๋ด๊ฐ ์์์ฐจ๋ฆฐ ๋ ๋ค๋ฅธ ์ฌ์ค์ S3 ์ฐ๊ฒฐ์ ๋๋ ค๋ ๊ฑฐ์ ๊ฐ์ ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์์๋๋ ๊ฒ์ ๋๊น?
์ฃ์กํฉ๋๋ค. ๋์ ๋ณต์ ์์
์ ์๋ฅผ ๋๋ฆฌ๋ ค๋ฉด ์ฝ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ ์ ์ ์์ด๋ฒ๋ ธ์ต๋๋ค. ํ์ฌ 8๋ก ํ๋์ฝ๋ฉ๋์ด ์์ต๋๋ค.
https://github.com/ifedorenko/restic/blob/099f51c01c189a84b96be86ce6be61a45e3705fc/internal/restorer/filerestorer.go#L22
๋ค๋ฅธ ํ ์คํธ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ์๋ ค์ฃผ์ธ์.
https://github.com/restic/restic/issues/2074#issuecomment -443759511์ ์๋ถ๋ถ์์ ์ธ๊ธํ ์์๊ฐ ์๋ชป๋ ๋ณต์ ์ค์ ๋ช
๋ฐฑํ ์์
์ ๊ฒฝํฉ์ ์ผ์ผํค๋ ์์ธ์ด ๋ฌด์์ธ์ง ์์ง ๋ชจ๋ฆ
๋๋ค. ์ด ํน์ ์ปค๋ฐ์ ํ
์คํธํ ์ ์์ต๋๊น?
https://github.com/ifedorenko/restic/commit/d410668ce3a8c7284d86a2b06bf42a0e654d43bc? ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ฒฝํฉ์ ๊ด์ฐฐํ๋ฉด ์ด๋ pmkane์ ๋ฐ์ดํฐ์๋ง ๊ตญํ๋์ง ์์ผ๋ฉฐ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ๊ฒฝํฉ์ด ์์ ๋์์์ ์๋ฏธํฉ๋๋ค.
๋์์ ์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ -- ์ฌ์ ํ ์ด๊ฒ์ ๋ชจ๋ํฐ๋งํ๊ณ ์์ง๋ง ์ ๋์ ์ผ๋ก ๋ช์ ๋น ์ ธ ์์ต๋๋ค. ์ด๋ฒ ์ฃผ๋ง์ ํ์ธํ๊ณ ifedorenko@d410668๋ก ๊ณ์ ๋ฒ์ํ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค
@ifedorenko ๊ฐ์ฌํฉ๋๋ค. 32๋ช ์ ์์ ์์ ํจ๊ป ํ๋ก์ธ์ค๊ฐ 30๋ถ์ผ๋ก ํจ์ฌ ๋นจ๋ผ์ ธ์ ์ข์ ๊ฒฐ๊ณผ์ ๋๋ค. ๋ํworker/s3.connections๋ฅผ 64/64, 128/128๋ก ๋๋ฆฌ๋ ค๊ณ ์๋ํ์ง๋ง ๊ฑฐ์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฐ์ ์ฌํญ์ด ์์ต๋๋ค. ์ด์จ๋ ํ์ฌ ๊ฒฐ๊ณผ์ ๋ง์กฑํฉ๋๋ค.
๋๋ ๋ํ ๋น์ ์ด ๋๋ฅผ ๊ฐ๋ฆฌํจ https://github.com/ifedorenko/restic/commit/d410668 ๋ฒ์ ์ ์๋ํ๊ณ ์ฌ๊ธฐ์ ์ถ์ ์ ์คํฌ๋ฆฐ์ท์ด ์์ต๋๋ค. ๋๋ ์ด๋ฐ ์ข
๋ฅ์ ๋๊ตฌ์ ๋ํ ๊ฒฝํ์ด ๋ง์ง ์์ง๋ง @pmkane ๊ฒฐ๊ณผ์ ๋น์ทํ ๊ฒ ๊ฐ์ต๋๋ค. 8๋ช
์ ์์
์์ -o s3.connections=32
@robvalca ๊ทธ๋์ ifedorenko@d410668 ์ ๋ ธ์ฃ ? ์ด๊ฒ์ ์ข์ ์์์ ๋๋ค. ์๋ ค์ง ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ์ ๋ฐ์ดํธ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@ifedorenko ์๋์, ์ธ๊ธํ๋ ๊ฒ์ ์์์ต๋๋ค. ๋์ผํ ์์ ์์ ์(8) ๋ฐ S3.connections(32)๋ฅผ ์ฌ์ฉํ๋ ์ง์ ์ฅ(์์ ์์)๊ณผ ์ฑ๋ฅ์ด ๊ฑฐ์ ๋์ผํฉ๋๋ค. ๋ ๋ค ~55m๊ฐ ์์๋์์ผ๋ฉฐ, ์ด๋ rclone(~47m)์ผ๋ก ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ์กํ๋ ์๊ฐ๊ณผ ์ผ์นํฉ๋๋ค.
๋ค๋ฅธ ๋งค๊ฐ๋ณ์๋ก ํ ์คํธํ๊ณ ์ถ๋ค๋ฉด ์๋ ค์ฃผ์ธ์ ;)
์ฌ์ฉ ์ฌ๋ก์์ ์ฑ๋ฅ ๋ฌธ์ ์ ์์ธ์ ์ฐพ์์ต๋๋ค. ๋์ฉ๋ ํ์ผ์ ๋ณต์ ์ฑ๋ฅ์ ํน์ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ฉด ๋น์ ํ์ ์ ๋๋ค.
ํ ์คํธ๋ฅผ ์ํด S3์์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค์ ์์์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ 6๊ฐ์ ํ์ผ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฐฑ์ ํ์ต๋๋ค. ํ์ผ ํฌ๊ธฐ๋ 1, 5, 10, 20, 40 ๋ฐ 80GB์์ต๋๋ค.
์ด์ ํ ์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ์คํธ๋ i3.8xlarge ์ธ์คํด์ค์์ ์คํ๋์์ผ๋ฉฐ ๋น ๋ฅธ ์คํธ๋ผ์ดํ SSD์์ ๋ฐฑ์ ๋ฐ ๋ณต์์ด ์ํ๋์์ต๋๋ค.
๋ฐฑ์ ์๊ฐ์ ์์๋๋ก ์ ํ์ ์ด์์ต๋๋ค(8, 25, 46, 92, 177, 345์ด).
๊ทธ๋ฌ๋ ๋ณต์ ์๊ฐ์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค.
1GB, 5์ด
5GB, 17์ด
10GB, 33์ด
20GB, 85์ด
40GB, 256์ด
80GB, 807s
๋ฐ๋ผ์ ๋์ฉ๋ ํ์ผ ๋ฐ ๋ณต์ ์ฑ๋ฅ์ ์ด์ํ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
๋ฒํท์ ์ด๋ฆ์ pmk-large-restic-test์ด๊ณ ๋ฒํท๊ณผ ํด๋น ์ฝํ ์ธ ๋ ๊ณต๊ฐ๋ฉ๋๋ค. us-west-1์ ์๊ณ ๋๋จธ์ง repo ๋น๋ฐ๋ฒํธ๋ password์ ๋๋ค.
ํ์ผ์ ์ค๋ ์ท ID๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1GB: 0154ae25
5GB: 3013e883
10GB: 7463efa8
20GB: 292650c6
40GB: 5acb4bee
80GB: d1b7e323
๋ด๊ฐ ์ ๊ณตํ ์ ์๋ ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์!
@pmkane https://github.com/ifedorenko/restic/tree/out-order-restore ๋ถ๊ธฐ์ ์ต์ ํค๋๋ฅผ ์ฌ์ฉํ๋์ง ํ์ธํ ์ ์์ต๋๊น? ?
๊ทธ๋, ๋ด๊ฐ ํ์ด. ์ธ๊ธํ์ง ๋ชปํด ์ฃ์กํฉ๋๋ค.
(ead78b3์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์คํ์์ 32๊ฐ์ ์์ ์์ 32๊ฐ์ s3 ์ฐ๊ฒฐ ์ฌ์ฉ)
ํด๋น ๋ฒํท์ ์ก์ธ์คํ๊ธฐ ์ํด ํน๋ณํ ์์ ์ ์ํํด์ผ ํ๋์ง ์๊ณ ์์ต๋๊น? ์ด์ ์ ๊ณต๊ฐ ๋ฒํท์ ์ฌ์ฉํ ์ ์ด ์์ผ๋ฏ๋ก ๋ด๊ฐ ์๋ชปํ๊ณ ์๋์ง ๋๋ ์ฌ์ฉ์๊ฐ ์ก์ธ์ค ๊ถํ์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. (๋ด ํ์ ๋ฒํท์ ์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ๋ด ์์คํ ์ด ์ผ๋ฐ์ ์ผ๋ก s3์ ์ก์ธ์คํ ์ ์์์ ์๊ณ ์์ต๋๋ค.)
@ifedorenko ์ผ,
์ฃ์กํฉ๋๋ค. ๊ณต๊ฐ ๋ฒํท ์ ์ฑ ์ ์ ์ฉํ์ง๋ง ๋ฒํท ์์ฒด์ ๊ฐ์ฒด๋ฅผ ์ ๋ฐ์ดํธํ์ง ์์์ต๋๋ค. ์ง๊ธ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฝ๊ธฐ ๊ถํ๋ง ๋ถ์ฌํ์ผ๋ฏ๋ก --no-lock์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์. ์ง๊ธ ์ ์ฅ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ค๋ ๋ฐค ๋์ค์ ๊ฐ์ง๊ณ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ ์คํธ๊ฐ ๋์์ด ๋๊ฑฐ๋ ๋ ์ฌ์ด ๊ฒฝ์ฐ ๋์ผํ ํ์ผ์ ๊ณ ์ SSD์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก/์์ ๋ณต์ํ ๋ ์ ์ฌํ ์ฑ๋ฅ ํน์ฑ์ ํ์ธํ์ฌ S3๋ฅผ ๋ฐฉ์ ์์์ ์ ์ธํฉ๋๋ค.
@pmkane ๋ก์ปฌ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ผ๋ฉฐ ํด๋น ๋ฒํท์ ๋ ์ด์ ์ก์ธ์คํ ํ์๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ์ ์ฉํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
@ifedorenko , ํ์์ ์ ๋๋ค. ๋ฒํท์ ์ญ์ ํ๊ฒ ์ต๋๋ค.
@pmkane ์๊ฐ์ด ์์ ๋ ์ต์ out-order-restore ๋ธ๋์น๋ฅผ ๋ค์ ์๋ํ์ญ์์ค. ec2์์ ์ด๊ฒ์ ํ ์คํธํ ์๊ฐ์ด ์์์ง๋ง ๋ด ๋งฅ๋ถ ๋ณต์์ ๋์คํฌ ์ฐ๊ธฐ ์๋์ ์ํด ์ ํ๋๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ์ง๊ธ์ rclone๊ณผ ์ผ์นํฉ๋๋ค.
@ifedorenko , ๊ทธ๊ฒ์ ๋งค์ฐ ์ ๋งํ๊ฒ ๋ค๋ฆฝ๋๋ค. ์ง๊ธ ์ํ์ ์น๋ฅด๊ณ ์์ต๋๋ค.
@ifedorenko , ๋น๊ณ .
ํ์ผ ํฌ๊ธฐ๊ฐ ํผํฉ๋ 133GB์ ํด๋นํ๋ Blob(์ต๋ ํฌ๊ธฐ๋ 78GB)์ ๋จ 16๋ถ ๋ง์ ๋ณต์ํ์ต๋๋ค. ์ด์ ์๋ ์ด ๋ณต์์ ํ๋ฃจ ์ค ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ์ ๊ฒ์ ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ restoreWorkers์ ์๋ฅผ ๊ฐ์ง๊ณ ๋ ธ๋ ๊ฒ์ผ๋ก ์ด๊ฒ์ ๋ ๋นจ๋ฆฌ ์ป์ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ํ์ฌ๋ก์๋ ์ถฉ๋ถํ ๋น ๋ฆ ๋๋ค.
์ด ์์ ์ ๋ํ ๊ทํ์ ๋ ธ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๊ทธ๋ฆฌ๊ณ ํ์ธ๋ฅผ ์ํด: ์ฐ๋ฆฌ์ ๋ณต์ ์ฑ๋ฅ์ 8->16์์ ๋ ๋ฐฐ, ๋ค์ 16->32 ๋ณต์ ์์ ์์์ ๋ ๋ฐฐ์ ๋๋ค. 32->64๋ 32 ์์ ~50% ๋ฒํ์๋ง ์ ํฉํ๋ฉฐ ์ด ์์ ์์ ์ฝ 3gbit/sec๋ก ๋ณต์ํฉ๋๋ค. rclone๊ณผ ๊ฑฐ์ ๋๋ฑํฉ๋๋ค.
restic์์ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ถ์ถํ๋ ๋ฐ ํ์ํ ๊ตฌ์ฑ์ ์์ ์ต์ํํ๋ ค๋ ์๊ตฌ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ์ด๊ฒ์ ํนํ ํฐ ํ์ผ ์ธํธ๋ฅผ ๊ฐ์ง ์ฌ์ฉ์์๊ฒ ์ถฉ๋ถํ ํฐ ์ ํ์ด๋ฏ๋ก ๋ค์์ ์ง์ ํ ์ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๋ฐํ์์ ์์ ์ ์
๋ณต์์ด ์ฌ์ ํ ์ต๋ ์ ์ ์๋๋ฅผ ์ป์ ์ ์๋ ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ค๋ณต Blob ํด์ ๊ฒ์ฌ๊ฐ ์์ผ๋ฏ๋ก ์ฑ ์์ด
์๋ํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ต์ pull request #2195๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์คํํ์ผ๋ฉฐ ์ฑ๋ฅ์ด ๊ณ์ ํฅ์๋๊ณ ์์ต๋๋ค!
(20k ์์ ํ์ผ, 2x70G ํ์ผ, ์ด 170G)
8w_32c
real 27m46.185s
user 24m31.290s
sys 3m55.153s
32w_32c
real 15m30.904s
user 24m1.982s
sys 4m55.128s
64w_32c
real 18m37.566s
user 23m33.684s
sys 5m3.024s
64w_64c
real 17m12.314s
user 23m44.318s
sys 4m43.090s
32w์์ 64w๋ก ์ฑ๋ฅ์ด ๋จ์ด์ง๋์ง ํ์คํ์ง ์์ต๋๋ค(์ฌ๋ฌ ๋ฒ ํ ์คํธํ์ผ๋ฉฐ ํฉ๋ฒ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค). ๊ทธ ๊ณผ์ ์์ ๊ทธ๋ํ๋ฅผ ๋ช ๊ฐ ์ฒจ๋ถํ๋๋ฐ, ์ฑ๋ฅ ์ ํ๋ ํ๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ์๋ฐ, ์ด ์ ๋๋ ๋์ด์ผ ํ ๊น์? ์๋ฅผ ๋ค์ด 64๋ช ์ ์์ ์๊ฐ ์๋ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๋ 6gbit/sec์์ ์์ํ์ง๋ง ๊ทธ ์ดํ์๋ ํ๋ก์ธ์ค๊ฐ ๋๋ ๋๊น์ง 1gbit/sec ๋ฏธ๋ง์ผ๋ก ๋จ์ด์ง๋๋ค(์ด๋ ํฐ ํ์ผ์ ์ฒ๋ฆฌํ๋ ์๊ฐ์ ํด๋นํ๋ค๊ณ ์๊ฐํฉ๋๋ค). ์ฒซ ๋ฒ์งธ ์คํฌ๋ฆฐ์ท์ 32w, 32c์ด๊ณ ๋ ๋ฒ์งธ ์คํฌ๋ฆฐ์ท์ 64w, 32c์ ๋๋ค.
๋๋ ๋ํ @pmkane์ ๋์ํฉ๋๋ค. ๋ช ๋ น์ค์์ ์์ ์ ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์ ๋๋ค. ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ๋ ค๋ ์ฌํด ๋ณต๊ตฌ ์๋๋ฆฌ์ค์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋๋ฃ #2178์ด ์ด์ ๋ํ ํ ๋ฆฌํ์คํธ๋ฅผ ํ์ต๋๋ค.
์ด์จ๋ ๊ฐ์ ๋ ์ ์ ์ ๋ง ๊ฐ๋ํ์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค @ifedorenko
++. @ifedorenko์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด๊ฒ์ ๊ฒ์์ ์์ ํ ๋ฐ๊พธ๋ ๊ฒ์ ๋๋ค.
์์ธํ ๋ณด๊ณ ์ @robvalca์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. AWS(๋๋ GCP ๋๋ Azure) ๋๋ ๋ก์ปฌ์์ ๋ด๊ฐ ํ ์ ์๋ ํ ์คํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? ๋ด ํ ์คํธ์์ ํฐ ํ์ผ ๋ณต์ ์๋ ์ ํ๋ฅผ ๋ณด์ง ๋ชปํ๊ณ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์๊ณ ์ถ์ต๋๋ค.
@pmkane ๋๋ ๋ฐํ์์ ์ด๋ฌํ ๊ฒ๋ค์ ๊ตฌ์ฑํ๊ณ ์ถ์ต๋๋ค. ๋ด ์ ์์ --option
์ต์
์ ๋ง๋ค์ด ์ผ๋ฐ ํ๋๊ทธ๋ ๋ช
๋ น์ ์ด์ง๋ฝํ์ง ์๋๋ก ํ๋ ๊ฒ์ด์ง๋ง, ํน์ดํ ์ํฉ์ ์คํํ๊ฑฐ๋ ์กฐ์ ํ๋ ค๋ '๊ณ ๊ธ' ์ฌ์ฉ์๋ฅผ ์ํ ๊ฒ์
๋๋ค. ๋ฌธ์ํํ ํ์๋ ์์ผ๋ฉฐ --option experimental.fooCount=32
์ ๊ฐ์ด ์ ๋ขฐํ ์ ์์์ ๋ถ๋ช
ํ ํ๋ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค.
์๋
ํ์ธ์ @ifedorenko , s3.cern.ch/restic-testrepo
์ ํฌ ๋ฐ์ดํฐ๋ก ๊ณต๊ฐ ์ ์ฅ์๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ด๊ฐ ์๋ํ ๊ฒ๊ณผ ๊ฑฐ์ ๊ฐ์ ๋ชจ์์ด๋ฉฐ(๋ง์ ์์ ํ์ผ๊ณผ ๋ช ๊ฐ์ ๋งค์ฐ ํฐ ํ์ผ) ๋ํ ์ด๊ฒ(์ฒจ๋ถ๋ ํ๋กฏ)์์ ๋์ผํ ๋์์ ์ฌํํ ์ ์์ต๋๋ค. ์ ์ฅ์์ ๋น๋ฐ๋ฒํธ๋ restic
์
๋๋ค. ์ก์ธ์คํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค.
@robvalca ํ
์คํธ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. AWS(us-east-2, s3 repo, i3.4xlarge
2x nvme raid0 target)์์ 32๋ช
์ ์์
์์ 32๊ฐ์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ ๋ ์์ ์ ์ธ 0.68GB/s์ ๋ณต์ ์๋๋ฅผ ๋ด
๋๋ค(์ด ๋ณต์ ์๊ฐ 6๋ถ 20์ด). ๋์ ์์คํ
์ 10GB/s๋ฅผ ์ค๋ซ๋์ ์ ์งํ ์ ์์ต๋๋ค. ์ถ์ธกํ ์ ์๋ค๋ฉด ์ ์ด๋ ์ด ๋ฌธ์ ๋ฅผ ์ถ๊ฐ๋ก ํด๊ฒฐํ๋ ค๋ฉด ๋จผ์ ํ์ธํด์ผ ํฉ๋๋ค.
@pmkane ํฅ๋ฏธ๋กญ๊ฒ๋ ๋๋ ๋น์ ์ ๊ด์ฐฐ์ ํ์ธํ ์ ์์ต๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด ์ต์ out-of-order-restore-no-progress
๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ 0.68GB/s์ ๋ณต์ ์๋๋ฅผ ๋ณด๊ณ (๋ณต์์ CPU ๋ฐ์ด๋๋ก ๋ณด์), ์ค๋ณต Blob ํด์ ๊ฒ์ฌ๋ฅผ ๋นํ์ฑํํ๋ฉด 0.81GB/s๋ฅผ ๋ด
๋๋ค(๋ณต์์ด CPU๋ก ๋ณด์ด์ง ์์). ๊ฒฝ๊ณ). "์ต๋ 10Gbps" ๋คํธ์ํฌ๊ฐ ์ผ๋ง๋ ๋ ๋นจ๋ผ์ง ์ ์์์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ฐ๋ฆฌ๋ ์ด๋ฏธ "์์ต ๊ฐ์" ์์ญ์ ๋ง์ด ์ง์
ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@ifedorenko ๋๋ ์ง์ฌ์ผ๋ก ๋ค์ ๋์ํฉ๋๋ค. ์์ต ๊ฐ์. ์ฐ๋ฆฌ์๊ฒ๋ ์ถฉ๋ถํ ๋น ๋ฅธ ์๋์ ๋๋ค.
@ifedorenko ํฅ๋ฏธ
๋ณํฉ๋๋ ์ํ๊ฐ ๊ถ๊ธํฉ๋๋ค. @cbane ์
๊ณง... ๐
#2195๊ฐ ๋ณํฉ๋์์ผ๋ฏ๋ก ๋ซ์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ์ธ๋ถ ์ฌํญ์ด ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ ์์ ๋กญ๊ฒ ๋ค์ ์ด ์ ์์ต๋๋ค. ์ด ํธ์์ ๋ ผ์๋ ์ ํ์ด ์๋ ๊ฐ์ ํด์ผ ํ ์ฌํญ์ด ์ฌ์ ํ ์๋ ๊ฒฝ์ฐ ์ ํธ๋ฅผ ์ฌ์ญ์์ค. ๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ณํฉ๋๋ ์ํ๊ฐ ๊ถ๊ธํฉ๋๋ค. @cbane ์