PHPで新しいWebアプリケーションを作成していますが、時間の経過とともに拡張できる方法で作成したいと考えています。
私は何をすべきか、すべきではありませんか?キャッシュする必要があることはわかっていますが、何をどのようにキャッシュする必要がありますか?ウェブサイトの読み込みを高速化するために他に何ができますか?
PHPで新しいWebアプリケーションを作成していますが、時間の経過とともに拡張できる方法で作成したいと考えています。
私は何をすべきか、すべきではありませんか?キャッシュする必要があることはわかっていますが、何をどのようにキャッシュする必要がありますか?ウェブサイトの読み込みを高速化するために他に何ができますか?
注:これは私が書いたものではなく、YCニュースのSnorkelが書いたものです。
短いリストは次のとおりです。
Varnishます。または他のリバースプロキシキャッシュを使用します。APCまたはXCachePHPオペコードキャッシュを使用します。memcachedしredisますApache、、MySQLおよびLinuxパフォーマンスに影響を与える多くの設定があります。特に、タイムアウト設定は下げる必要があります。strace使用してtop、どのレイヤーが最も時間とリソースを使用しているかを確認しますiostatvmstatほとんどの場合、PHPは、低速ディスク、過負荷のデータベース、ハングしたmemcachedプロセス、サードパーティサービスへの低速REST API呼び出しなど、他のレイヤーからのI / Oを待機するために各PHPプロセスがブロックされるため、速度が低下します。 。多くの場合、ライブPHPプロセスをstraceするだけで、待機しているものが表示されます...要するに、I/Oをブロックするとすべてが遅くなります。より速く進むための鍵は次のとおりです。
複数のフロントエンドにスケーリングするには、Web サイトのルートとその動的コンテンツを複製する必要もあります。
GlusterFS は素晴らしい追加機能ですが、スケールアップがどれだけうまくいくかはわかりません。別の代替手段は Lsyncd です。他の代替手段には、コードの GIT と動的コンテンツの CDN が含まれる場合があります。
追加する必要があります: gzip で出力を圧縮します。