Contents
前提
小~中規模のLAMP環境(EC2でAmazon Linux、 Apache、RDSでMySQL、PHP)を任された事を想定。また、ELB配下に複数のWebサーバがあり、CPU使用率が閾値を超えた時にスケールアウトする。
負荷試験の目標として、性能の確認に加えて各パラメータのチューニングなども行う。
最初にやること
分からなければ本を読む。特に「Amazon Web Services負荷試験入門―クラウドの性能の引き出し方がわかる」を読むことを強くオススメします。入門と銘打っているだけあって初心者の強い味方になると思います。
可能であればリーダ、マネージャクラスの人にも読んでもらいましょう。最低でも「Chapter1 間違いだらけの負荷試験とWebシステムの失敗事例」に目を通してもらうと、負荷試験をやるにあたって真剣に話を聞いてもらえるようになるはず。
基本的には「非機能要件に書いてあるパフォーマンス指標を満たせるかどうか確認する」ということが負荷試験の目的になるはずですが、パフォーマンス指標の表現が曖昧(負荷試験の実施結果とリンクしない)になっていることもあります。この場合、要件定義の見直しや再確認が必要です。意味のある負荷試験にするために、リーダ、マネージャと意識合わせはしておきましょう。
Apacheのチューニング
最初にApacheのチューニングからやります。設定値にも色々ありますが、マストは以下の2つだと思います。
- MPM
- MaxClients(MaxRequestWorkers)
MPM
いくつか種類があるMPMですが、どれを使うか決めます。システムによって変わるのでお好みで。(オートスケーリング環境下であれば攻める必要もないので、個人的にはpreforkでいいんじゃないかと思います。)
MaxClients(MaxRequestWorkers)
定番の最初から一気に最大数の子プロセスを立ち上げる設定は入れておきます。
肝心のMaxClientsですが、チューニングの方法については諸説あります。
一番新しい、かつAWSの公式ドキュメントということで以下を参照するとpsの%MEMから算出するように書いています。
Amazon EC2 での Apache メモリのチューニング
しかしpsの%MEMはRSSから算出したメモリ使用率のはずです。共有メモリ分がそれぞれの子プロセスに上乗せされているので、この値を用いるとMaxClientsはかなり少なくなります。
なので(一気に立ち上げる設定も入れたことですし)実際に子プロセスを立ち上げてチューニングします。また、立ち上げるだけでなく軽くabで負荷をかけます。(一度リクエストを受け取るとメモリ使用量が少し増えたりするので…)
しばらく簡易的に負荷をかけてみて、メモリの使用量をモニタリングします。メモリリークしている場合は論外なのでプログラムの修正などをします。どうにもならない場合はMaxRequestsPerChildを適当に設定する。
Apacheの子プロセス自体のメモリ使用量+PHPでのメモリ使用量を想定し、少し余裕を見てMaxClientsを決めます。
EC2のチューニング
カーネルパラメータ
カーネルパラメータには定番の設定項目があります。以下にキーワードを挙げます。ググって関連する項目もまとめて/etc/sysctl.confに設定して下さい。
- net.core.somaxconn
- net.core.netdev_max_backlog
- net.ipv4.tcp_fin_timeout
- net.ipv4.tcp_tw_reuse
- net.ipv4.tcp_max_syn_backlog
- ……
この辺を設定しておかないと、具体的な症状として以下が現れます。
- Webサーバに継続して負荷をかけた際、かけ始めの瞬間はCPU使用率が上がるが、その後下がる(CPU使用率が高い状態で張り付かない)
- Webサーバのロードアベレージが低い
- ELBがHTTPステータス 504を返す
swap領域
負荷試験とは直接は関係ありませんが、AWS公式のLinux AMIだとswap領域が作成されないので必ず作成します。実メモリ枯渇によるOOM Killerを避けるためです。積極的に使用したいわけではないので、性能に影響のありそうなSwappinessは極力下げます。ボトルネックはCPU使用率になるのでメモリフルになることはないはずですが念の為。
負荷試験の実施
任意のツールで非機能要件に合致したシナリオ/スレッドで負荷をかけます。必要であればELBの暖気申請を。
最終的に以下を確認します。
- 第一段階として、ボトルネックがWebサーバのCPU使用率になっていること(リクエスト数の増加に伴いWebサーバのCPU使用率が上昇しスケールアウトすること)
- 第二段階として、ボトルネックがRDSのCPU使用率になっていること(オートスケーリンググループ内の最大インスタンス数が、RDSが死なない程度の個数になっていること)
- 端末で正常に動作確認ができること(タイムアウトなど、操作に支障がないか)
- 非機能要件を満たしていること
まとめ
負荷試験の具体的な一例を書いてみました。チューニングについてはそれぞれバラバラに言及されていることが多いので、そもそもシステム全体としてパラメータのチューニングをどこから始めたらいいのか分からないという場合に参考になれば幸いです。
負荷試験における具体的な負荷のかけ方など「Amazon Web Services負荷試験入門―クラウドの性能の引き出し方がわかる」で言及されていることについては敢えて書いていないので、とにかく読んでみて下さい。今回書いたような実践のケーススタディも豊富にあり、視野を広げてくれると思います。またAWSかどうかに関わらず、負荷試験をやるにあたっての知見が盛り沢山なので多くの人にきっと役に立つはずです。
viagra sale viagra paypal bezahlen viagra 100mg cost
viagra for sale in milwaukee wisconsin how to take viagra levitra vs cialis vs viagra
viagra for 30 years old chipp viagra where to buy viagra seattle
viagra without rx but cheap generic viagra is generic viagra real
50 mg viagra for sale buy cheap generic viagra online pharmacy viagra
erectile stamina in older men
erectile tissue definition
canadian pharmacies online pharmacy viagra india pharmacy
best drugstore mascara best drugstore shampoo best drugstore makeup
us online pharmacy best drugstore moisturizer online pharmacy
best drugstore eyeshadow pharmacy rx india pharmacy
pharmacy express e d п»їviagra online canadian pharmacy
canada pharmacy reviews http://pharmacy-onlineasxs.com/ online pharmacy canada
drug store news ce pharmacy online drugstore save on pharmacy
http://t.me/s/alcohol_yakutsk
quit smoking canadian pills canada drugs pharmacy online
prescription drugs from canada online viagra canadian pharmacy viagra toronto
online discount pharmacy canadian drugs pharmacy canadian drugs
hair loss north west pharmacy canada canadian pharmacies online
generic viagra online canadian pharmacy viagra gold cheap generic viagra online australia
canadian rx pharmacy online pharmacy intern drug price
viagra dosage women viagra throught paypall dapoxetine and viagra
cialis kidney function buy generic cialis mex rx cialis
best canadian pharmacies free samples to uk viagra canada drugs
canadian government approved pharmacies best 10 online canadian pharmacies canadia online pharmacy
payday loans melrose park kitty payday loans viking merchant cash advance
cialis and hctz free samples viagra cialis cialis adolescentes
viagra in hong kong buying viagra in uk online suppliers of generic viagra
summons to appear in court for payday loan a1 cash loan advance u cash ky
sildenafil 100 canadian pharmacy viagra cheap buy real viagra online india
best viagra alternatives viagra vs levitra vs cialis reviews paypal for viagra
who manufactures sildenafil
who manufactures sildenafil
payday loans oxford ms loan star payday cash advance with square
cialis black to buy in the uk cialiscanada cialis tadalafil paypal
cialis informacion en espaГ±ol site fiable achat cialis diabetes viagra cialis
cash advance antioch cash flow projection for bank loan yahoo payday loan
women on viagra
women on viagra