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