Tips

AWS+LAMP環境下で実施する負荷試験とパラメータチューニングに関する知見

  • このエントリーをはてなブックマークに追加

前提

小~中規模の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ですが、チューニングの方法については諸説あります。

Apache の 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かどうかに関わらず、負荷試験をやるにあたっての知見が盛り沢山なので多くの人にきっと役に立つはずです。

  • このエントリーをはてなブックマークに追加
Please Login to comment
441 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
358 Comment authors
EvaPriobKimPriobEvaPriobLoanLisaPriob Recent comment authors
newest oldest
KhedPact
Guest
KhedPact

viagra sale viagra paypal bezahlen viagra 100mg cost

KhedPact
Guest
KhedPact

viagra for sale in milwaukee wisconsin how to take viagra levitra vs cialis vs viagra

KhedPact
Guest
KhedPact

viagra for 30 years old chipp viagra where to buy viagra seattle

KhedPact
Guest
KhedPact

viagra without rx but cheap generic viagra is generic viagra real

KhedPact
Guest
KhedPact

50 mg viagra for sale buy cheap generic viagra online pharmacy viagra

buy erectile dysfunction pills online
Guest
buy erectile dysfunction pills online

erectile stamina in older men
erectile tissue definition

LokuGlype
Guest
LokuGlype

canadian pharmacies online pharmacy viagra india pharmacy

AqwsGlype
Guest
AqwsGlype

best drugstore mascara best drugstore shampoo best drugstore makeup

FgvdOrgap
Guest
FgvdOrgap

us online pharmacy best drugstore moisturizer online pharmacy

JlloSealp
Guest
JlloSealp

best drugstore eyeshadow pharmacy rx india pharmacy

JtmfGlype
Guest
JtmfGlype

pharmacy express e d п»їviagra online canadian pharmacy

NllpOrgap
Guest
NllpOrgap

canada pharmacy reviews http://pharmacy-onlineasxs.com/ online pharmacy canada

KhthPact
Guest
KhthPact

drug store news ce pharmacy online drugstore save on pharmacy

AnthonyHus
Guest
AnthonyHus
KbcxPact
Guest
KbcxPact

quit smoking canadian pills canada drugs pharmacy online

NncsOrgap
Guest
NncsOrgap

prescription drugs from canada online viagra canadian pharmacy viagra toronto

JbbvGlype
Guest
JbbvGlype

online discount pharmacy canadian drugs pharmacy canadian drugs

AhkdGlype
Guest
AhkdGlype

hair loss north west pharmacy canada canadian pharmacies online

Kuikscure
Guest
Kuikscure

generic viagra online canadian pharmacy viagra gold cheap generic viagra online australia

JbnbSealp
Guest
JbnbSealp

canadian rx pharmacy online pharmacy intern drug price

FvfcOrgap
Guest
FvfcOrgap

viagra dosage women viagra throught paypall dapoxetine and viagra

Aqcfsmallless
Guest
Aqcfsmallless

cialis kidney function buy generic cialis mex rx cialis

LbsxGlype
Guest
LbsxGlype

best canadian pharmacies free samples to uk viagra canada drugs

FqhhGlype
Guest
FqhhGlype

canadian government approved pharmacies best 10 online canadian pharmacies canadia online pharmacy

KvaxPact
Guest
KvaxPact

payday loans melrose park kitty payday loans viking merchant cash advance

JbbnGlype
Guest
JbbnGlype

cialis and hctz free samples viagra cialis cialis adolescentes

Kbbfscure
Guest
Kbbfscure

viagra in hong kong buying viagra in uk online suppliers of generic viagra

JbnvSealp
Guest
JbnvSealp

summons to appear in court for payday loan a1 cash loan advance u cash ky

NbnhOrgap
Guest
NbnhOrgap

sildenafil 100 canadian pharmacy viagra cheap buy real viagra online india

Abcfsmallless
Guest
Abcfsmallless

best viagra alternatives viagra vs levitra vs cialis reviews paypal for viagra

trackback

who manufactures sildenafil

who manufactures sildenafil

AhbzGlype
Guest
AhbzGlype

payday loans oxford ms loan star payday cash advance with square

FbsgOrgap
Guest
FbsgOrgap

cialis black to buy in the uk cialiscanada cialis tadalafil paypal

LabxGlype
Guest
LabxGlype

cialis informacion en espaГ±ol site fiable achat cialis diabetes viagra cialis

FqbbGlype
Guest
FqbbGlype

cash advance antioch cash flow projection for bank loan yahoo payday loan

trackback

women on viagra

women on viagra

KndnPact
Guest
KndnPact

viagra connect cvs viagra for sale online over the counter viagra substitute walmart

Clarkjak
Guest
Clarkjak

5dse5 riwab 45gz

KiaPriob
Guest
KiaPriob
Loans
Guest
Loans

{loans|loan|loans|payday loans|personal loans|payday loan|loans online|payday lending|loans for bad … Read more »

AmyPriob
Guest
AmyPriob
Payday Express
Guest
Payday Express

{loans|loan|loans|payday loans|personal loans|payday loan|loans online|payday lending|loans for bad … Read more »

KiaPriob
Guest
KiaPriob
AmyPriob
Guest
AmyPriob
KiaPriob
Guest
KiaPriob
Easy Payday Loan
Guest
Easy Payday Loan

{loans|loan|loans|payday loans|personal loans|payday loan|loans online|payday lending|loans for bad … Read more »

Loans
Guest
Loans

{loans|loan|loans|payday loans|personal loans|payday loan|loans online|payday lending|loans for bad … Read more »

LisaPriob
Guest
LisaPriob
LisaPriob
Guest
LisaPriob
Loan Cash
Guest
Loan Cash

{loans|loan|loans|payday loans|personal loans|payday loan|loans online|payday lending|loans for bad … Read more »