根本的な見直し
「サーバーが遅い」と言う意見をよく聞く。
ひねくれたシステム屋からすれば、通信環境とか様々な事を加味した上で遅い言ってるワケではないので、サーバーが遅い・重いと言う言葉はどのアーキテクトを触るか?と言う事の判断材料にしたくはない。
根無し草の自分が着任した時には既に様々なシステムが稼働していて、そのシステムがどんな構成なのか。どういう問題が現状で起こっているのか。と言う事を判断するにはパワーが必要になる。
その中で結構な頻度で出てくる早くならないの?の要望。
ソフトウェア側の問題もあるのだが、サーバー側を見直した際にファイルの圧縮が行われていない事がしばしば見られる。
他にも自前のCMSでアップロードした画像が圧縮されていない為に大容量のスマホ写真がそのまま使われていたりするが、この辺は過去に積み重なったデータの関係上今の今チューニングするには少し時間が足りない。
前述した、ファイルの圧縮と言う点ではcssやtextファイルなどが通信の際に圧縮がかかっていない為にダラダラとデータを流していると言う事になる。
これもテストサイトで一旦は計測する必要があるが .htaccessでmod_deflateが使えるのであれば圧縮した通信に変えてみるって言う手を考える。
<IfModule mod_deflate.c> SetOutputFilter DEFLATE # Mozilla4系などの古いブラウザで無効、しかしMSIEは除外 BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # gifやjpgなど圧縮済みのコンテンツは再圧縮しない SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary SetEnvIfNoCase Request_URI _\.utxt$ no-gzip # htmlやcssなどは圧縮 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php </IfModule> <|| ざっくりとコピペするとこんな感じ。特に継ぎ接ぎとなっているcssなどはファイルが冗長化しており全部読み出すまでに時間を喰う。 この辺を反映させて、スピードテストを行うと意外とスピードが上がったりする。