快適なブログ環境を目指すために、ガリガリサーバーチューニングをしていました。
基本的なことは下記記事を参照ください。
しょぼんブログ
2 Pockets
しょぼんブログ
メテオフォール型開発に負けないよう頑張るエンジニアを応援するブログ
途中いろいろとミスってサーバーを吹き飛ばすなんてあり得ないミスをしてきましたが、ようやく形になりました。
実施したこと
- https2化
- PHP実行環境をHHVMに変更
- Brotliの導入
- mariadbのパフォーマンスチューニング
- ngx_pagespeedの導入
- WP Super Cacheの導入
- Wordfence SecurityからShieldへ変更
- .htaccessのカスタマイズ
サーバー環境
CPU
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz stepping : 2 microcode : 0xffffffff cpu MHz : 2397.172 cache size : 30720 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms xsaveopt bogomips : 4794.34 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management:
Memory
MemTotal: 3523252 kB MemFree: 288632 kB MemAvailable: 972136 kB Buffers: 3976 kB Cached: 853760 kB SwapCached: 0 kB Active: 2459376 kB Inactive: 543044 kB Active(anon): 2158128 kB Inactive(anon): 33496 kB Active(file): 301248 kB Inactive(file): 509548 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 48 kB Writeback: 0 kB AnonPages: 2144708 kB Mapped: 83864 kB Shmem: 46940 kB Slab: 113660 kB SReclaimable: 83300 kB SUnreclaim: 30360 kB KernelStack: 6976 kB PageTables: 22068 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1761624 kB Committed_AS: 4929888 kB VmallocTotal: 34359738367 kB VmallocUsed: 68204 kB VmallocChunk: 34359643704 kB HardwareCorrupted: 0 kB AnonHugePages: 1173504 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 102336 kB DirectMap2M: 3567616 kB
結果
ab -n 1000 -c 100 -f TLS1.2 https://syobon.jp/
This is ApacheBench, Version 2.3 <$Revision: 1748469 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking syobon.jp (be patient) Server Software: nginx Server Hostname: syobon.jp Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256 Document Path: / Document Length: 67327 bytes Concurrency Level: 100 Time taken for tests: 8.625 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 67766000 bytes HTML transferred: 67327000 bytes Requests per second: 115.94 [#/sec] (mean) Time per request: 862.524 [ms] (mean) Time per request: 8.625 [ms] (mean, across all concurrent requests) Transfer rate: 7672.57 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 85 328 142.7 306 999 Processing: 150 503 184.3 496 1751 Waiting: 25 150 115.6 121 1230 Total: 279 832 251.6 739 2291 Percentage of the requests served within a certain time (ms) 50% 739 66% 878 75% 967 80% 1013 90% 1104 95% 1320 98% 1663 99% 1783 100% 2291 (longest request)
当初は、Requests per secondが10くらいしか無かったので、10倍ほどパフォーマンス向上が図れました。
まとめ
取りあえず納得できる値は出せたので、しばらくはこれで運用していこうと思います。
あとこれ以上悲劇を生まないためにも、サーバーのイメージバックアップは日次で行うことにしました・・・