2014年09月01日(月) - 23:57 | カテゴリ:
Linux
PHP net
来年あたりに、CentOS組以外の大規模PHPアップデート祭りとか来るのかなぁ…(´・ω・`)
来る、2014/08/28に公開されたPHP 5.6.0なのだが、
こいつが公開された事によって世の鯖管が右往左往する事になるのかも知れないので軽くメモ。
背景としてPHPは最新メジャーバージョンから2引いたバージョンまでしか、
オフィシャル(PHP net)ではサポートしないという開発体系を取っている事から。
その為、今回PHP 5.6が公開された事によって、
PHP 5.3のオフィシャルサポートが終了する事となった。
『Oh… うちのサーバCentOS6使っているからPHP5.3ダヨ… アップデートしなきゃネ』
と思った鯖缶ちょっと待った。上げるなら、ちゃんと調べてからPHP5.5以上に上げましょう。
[注] 筆者は英語大嫌いな人種なので翻訳間違えて、記事内容に差異があってもゴメンナサイ(´;ω;`)
というのも、PHP5.4以下とPHP5.5以上ではサポートされているメソッドで大きな違いがある。
特にDB接続系の関数が刷新されている為、PHP5.3/PHP5.4では正常稼働していたプログラムが、
PHP5.5以上に上げた途端ハングしてしまうという事態に陥りかねない。
『んじゃどうするよ!?』
という事になるのだが、実はCentOS6.xのBaseリポジトリを使ってPHPをyum管理している人なら
PHP5.3を使い続けてもとりあえずOKという情報があったりする。
というのも、RedHatがPHPのパッチメンテナンスを続け、そのパッチがCentOSに流れてくるからとかなんとか。
●[あるSEのつぶやき]:CentOS 6 のサポート期限は 2020 年 11 月まで(PHP 5.3 もね)
てか、CentOS5.xでPHP5.3がメンテされるのに、CentOS6.xで切るというア○な選択もなかろうかと(´・ω・`)
そもそも、CentOSのサポート自体が2020年までなので、
その期間内で天下のRedHatが打ち切りなんかするわけなかろうという安心感もある。
現状でMySQL5.1をサポートしちょる位だし、前例は一応あったり。
それでも『PHP5.3からバージョン上げなきゃ… お上がうるさいし…』という鯖管理者もいるだろうが、
それを頑張って説得してPHP5.3を突き進むか、PHP5.4でお茶を濁すかはまた別の話。
どっちにしろ言えるのは、
"BaseリポジトリのPHPを使っている環境で、PHP5.3からPHP5.4無いしPHP5.5以上を入れ直す必要性は薄い"
という事。
てか、入れ直す事によるプログラムテストとかデバッグとか運用負荷デメリットが大きすぎる。
もちろん、バージョンを上げる事による新機能は魅力的なのだが…
でも、ソースから独自ビルドしPHP5.3を入れた環境とかは流石に対策しないとマズイ。
その時はyumに戻るか、PHP5.4に上げるか、PHP5.5以上に上げてメソッド違いの茨道を進むかになると思う。
« 続きを隠す
2014年06月08日(日) - 18:21 | カテゴリ:
Linux
2022年版として再計測してみました。
………
先日、自鯖のログ圧縮を行おうとキーボードを叩いていたのだが、
その時に『普通ならgzipだろうけどxzとか他はどうなんだろう…?』
と思ったので、実際にファイルを圧縮しつつ実行速度と圧縮率を測定してみた。
Linux(CentOS)のデフォルトlogrotateでcompressオプションを指定した場合はgzip圧縮になる。
オプションとかコマンドを再指定する事で、他の圧縮方法に切り替える事も可能だけど、
普通はそんな面倒な事やらないし、
『ログの圧縮と言ったらgzipだべ』という人が大半だと思われる。
そんな中での今回の検証だが、果たしてどの圧縮方法が鯖に優しいのだろうか(`・ω・´)
………
● 計測方法
- 検証は仮想環境上に”CentOS x86_64″を構築し実施。
- テキスト(ログ)504MBとバイナリ(CentOSのLiveCD)649MBに対して
各圧縮コマンド毎に3回ずつ圧縮処理を行い、
その中の最速処理時間の値を圧縮方法に対応する処理時間とする
- 圧縮率指定の出来るコマンドでは、[速度重視 / 指定無し / 最高圧縮率]の3種類の測定を行う
ただし、アーカイブ化オプション(=圧縮しない)の場合は省略する
- 処理時間の測定にはtimeコマンドを使用し、
ユーザタイムでの処理時間をファイルの圧縮にかかった時間とする
- 圧縮率の計算は“[圧縮後の容量] / [圧縮前の容量]”とする
- 各コマンドのバージョンは以下の物を使用
コマンド |
バージョン |
gzip |
1.3.12 |
bzip2 |
1.0.5 |
xz |
4.999.9beta |
zip |
3.0 |
7zip(7za) |
9.20.1 |
lzh(lha) |
1.14i |
という事で、実際にコマンドを叩きまくって計測をしてみた。
◆ テキスト(ログ)ファイル [元ファイルサイズ:528394240(504M)Byte]
● 処理速度(単位:秒)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
gzip |
5.06 |
11.15 |
16.98 |
bzip2 |
96.78 |
171.10 |
170.94 |
xz |
19.02 |
303.38 |
422.88 |
zip |
5.01 |
11.27 |
17.35 |
7zip |
20.37 |
207.11 |
454.99 |
lzh |
NoData |
17.95 |
NoData |
● 圧縮率(圧縮後容量:Byte | 圧縮率:%)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
gzip |
69740928(66.51M) |
13.199 |
56342711(53.73M) |
10.663 |
53053857(50.60M) |
10.041 |
bzip2 |
47765217(45.55M) |
9.040 |
39473917(37.65M) |
7.471 |
39473917(37.65M) |
7.471 |
xz |
52814696(50.37M) |
9.995 |
39297448(37.48M) |
7.437 |
34627800(33.02M) |
6.553 |
zip |
69741068(66.51M) |
13.199 |
56342850(53.73M) |
10.663 |
53053996(50.60M) |
10.040 |
7zip |
49351228(47.06M) |
9.340 |
45921512(43.79M) |
8.691 |
34625193(33.02M) |
6.553 |
lzh |
NoData |
– |
56100468(53.50M) |
11.185 |
NoData |
– |
………
◆ バイナリ(LiveCD)ファイル [元ファイルサイズ:680525824(649M)Byte]
● 処理速度(単位:秒)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
gzip |
27.26 |
29.38 |
29.57 |
bzip2 |
160.31 |
203.46 |
199.18 |
xz |
118.53 |
289.40 |
378.48 |
zip |
24.43 |
26.00 |
25.84 |
7zip |
137.07 |
313.51 |
571.32 |
lzh |
NoData |
56.43 |
NoData |
● 圧縮率(圧縮後容量:Byte | 圧縮率:%)
|
最速処理速度 |
速度指定無し |
最高圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
圧縮後容量 |
圧縮率 |
gzip |
663346521(632.62M) |
97.476 |
662932387(632.22M) |
97.415 |
662931421(632.22M) |
97.416 |
bzip2 |
671338147(640.24M) |
98.650 |
668833540(637.85M) |
98.282 |
668833540(637.85M) |
98.282 |
xz |
662375208(631.69M) |
97.333 |
657594464(627.13M) |
96.630 |
657235092(626.79M) |
96.577 |
zip |
663346660(632.62M) |
97.476 |
662932526(623.22M) |
97.415 |
662931560(632.22M) |
97.415 |
7zip |
666778042(635.89M) |
97.980 |
661232857(630.60M) |
97.165 |
661003682(630.38M) |
97.131 |
lzh |
NoData |
– |
663947004(633.19M) |
97.564 |
NoData |
– |
計測の生データはこちら
テキストファイルでは圧縮速度最重視だとgzip、圧縮率最重視だとxzという結果になった。
しかし、圧縮後容量を見るとgzipとxzだと結構差のある結果に。
ログとかだと年単位で取得とかになるので、たかが数メガでも1年分(x365)するととんでもない事に。
そういう実用面を考えると、bzip2で最高ブロック数指定がバランスを取れているのかもしれない。
意外だったのが、テキストで最高圧縮率指定だと7zipが一番縮んだ事。
実行前は『xzが一番縮むだろうな~』と予想していただけに驚きだった。
その分、処理時間も一番長かったので実用面では工夫しないといけないだろうが(´・ω・`)
バイナリファイルの圧縮率ではxzの一人勝ちだった。
しかし、処理速度観点で見るとgzipとzipの一騎打ちに。
昔から使われているgzipとzipだけあって、様々なシーンでの高速処理が目に見えた結果だった。
圧縮処理については賛否両論あるし、それぞれのシーンによって使い分けるのが一番良いのだろうが、
実用シーンではbzip2がオールマイティに使えると感じた結果になりましたとさ(`・ω・´)
…と言いつつ、自鯖のlogrotateは未だにgzipなわけですが
« 続きを隠す
2014年06月07日(土) - 18:46 | カテゴリ:
Linux
最近OpenSSLの重大バグ発見率上がっているなぁ~(´・ω・`)
………
OpenSSLのバグと言えば、Heartbleed発見で世界中が震撼したのが新しい記憶。
HBが見つかってから期間があまり経っていないのに、またもやデカイバグが発見されたとの事。
どうやら、SSL/TLS通信経路上での脆弱性らしい。
で、攻撃(改ざん等)を防ぐ為には"クライアント or サーバのどちらかで、脆弱性修正されたOpenSSLへ更新する"事が必須と。
脆弱性修正の施されたOpenSSLは、
-
OpenSSL1.0.1系統 → OpenSSL1.0.1h
-
OpenSSL1.0.0系統 → OpenSSL1.0.0m
-
OpenSSL0.9.8系統 → OpenSSL0.9.8za
なので、対応したバージョン(最新版)へ更新する必要がある。
てか、0.9.8系統のバージョン末尾がアルファベットの"z"を超えちゃったよw
HBの時程、世間では騒がれていないけど
世のサーバ管理者は着実に対応していく必要ある問題だわね(´・ω・`)
……という事で、自分の休日その1はOpenSSLのバージョンアップで無くなったのでした(´;ω;`)