圧縮ファイルzipについて

ことの至り

Windowsで複数の写真ファイルをzipして、Linuxへアップする作業についての備忘録。
Linux側では依頼開発したモジュールで100MBの容量制限を設けられていたため、アップできないzipファイルがあり、原因調査のやり取りで時間を食った。
で、そもそも100MB制限って必要なの?
何を根拠に100MBなんじゃ。
モジュールを作成した業者さんからは、特に具体的な根拠資料はなく、100でなく200MB制限に変えておきますね、という提案が来た。う〜ん、200を推す根拠を示してもらえると納得いくのだが。。。
 

zipの容量

私のWinXPは32bitマシン。
32ビットアプリケーションで扱える最大整数は4,294,967,296なので、4GBまではWinXPのzipで扱えると思っていた。
が、そう単純な話ではないらしく、WinXPでzipを扱う場合は2GBの壁がある模様。
マイクロソフトのサポートオンラインで見ると、出来あがり圧縮ファイルのサイズが2GB越えは、エラーとなるそうだ。


ともあれ、圧縮後サイズ2GB以下であればOKってことで、上限としてこのサイズを覚えとこう。

アップロード制限200MBで十分か?

今回、オリジナルサイズの大きい写真ファイルを扱うことになったので、今までは起こり得なかった100MB越え圧縮ファイルが発生し始めた。
現在は、業者さんが100MBに設定しているアップロード上限サイズを、いくつに想定しておけば良いのか。


運用の方からすると、500kB写真×40個×10〜20ディレクトリ=200〜400MB程度までを想定しておけば足りるかな。
一応、ダミー100MBのzipファイルをアップしつつvmstatしてみて、サーバ機自体は大丈夫か見ておく。
ブラウザ上でアップロード完了確認できるまで70秒余りかかった。
その間のvmstatの抜粋。

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 0 2276604 583944 655396 0 0 0 0 1946 5017 1 1 98 0 0
1 0 0 2268224 583956 663620 0 0 0 12 8381 25680 2 5 93 0 0
1 0 0 2259272 583964 672364 0 0 0 0 8636 28850 3 7 90 0 0
1 0 0 2251372 583976 680052 0 0 0 22836 7958 32765 2 5 86 7 0
1 0 0 2242604 583984 688632 0 0 0 0 8423 35044 2 5 93 0 0
1 0 0 2234240 583992 697112 0 0 0 0 8053 33523 2 7 91 0 0
1 0 0 2225088 584000 706348 0 0 0 0 8673 36195 2 6 92 0 0
1 0 0 2216864 584008 714392 0 0 0 0 7700 31975 3 5 93 0 0
1 1 0 2208288 584016 722632 0 0 0 40816 8551 32054 2 7 72 19 0
1 0 0 2199132 584024 731752 0 0 0 0 8911 36938 3 7 90 0 0
1 0 0 2190376 584032 740444 0 0 0 0 8286 34614 2 5 92 0 0
1 0 0 2181472 584040 749536 0 0 0 4 8427 34885 2 7 91 0 0
1 0 0 2035404 584616 895116 0 0 16 0 4319 16986 10 10 80 0 0
1 2 0 1963836 585460 961024 0 0 4 100800 814 1058 29 4 49 18 0
1 2 0 1961244 585464 961468 0 0 0 90600 939 832 30 2 26 41 0
1 1 0 1962260 585472 961868 0 0 0 38448 1043 1123 30 1 30 40 0
1 0 0 1967652 585480 958144 0 0 0 1592 752 914 31 1 57 10 0
1 0 0 1967108 585496 958680 0 0 0 0 688 843 30 0 70 0 0
1 0 0 1966612 585504 959156 0 0 0 2312 732 953 29 0 68 2 0
2 0 0 1966240 585508 959700 0 0 0 0 694 979 32 1 67 0 0
....
1 0 0 1932380 586784 967192 0 0 0 0 681 1057 29 0 71 0 0
4 0 0 1918752 586800 981036 0 0 0 0 714 328 22 3 75 0 0
1 0 0 1913944 586812 996056 0 0 0 0 710 520 23 2 72 3 0
1 0 0 1898816 586828 1011236 0 0 0 0 624 284 23 3 74 0 0
1 1 0 1883232 586840 1025316 0 0 0 53604 807 572 22 4 66 8 0
1 0 0 1875328 586848 1034524 0 0 0 232 617 321 15 2 64 19 0
1 0 0 1860308 586864 1049324 0 0 0 0 730 362 21 3 76 0 0
1 0 0 1845748 586876 1064136 0 0 0 28 697 482 24 2 74 0 0
0 0 0 1987064 586880 922332 0 0 0 20 399 376 9 2 90 0 0
2 0 0 1987120 586880 922336 0 0 0 0 158 268 0 0 100 0 0
0 0 0 1987272 586880 921872 0 0 0 46828 337 377 0 1 84 15 0
0 0 0 1987280 586880 921772 0 0 0 0 129 247 0 0 100 0 0

瞬間的に待ちプロセスが5になることがあったが、待っていれば処理は完了するので、処理時間がこのくらい掛かるものだという認識を持っていれば良しとする。