Facebook用のPHPアプリケーションを作成しました。MySQL、Memcachedを使用し、Centos2,6Ghzおよび2GBRAMのlighttpdで動作します。
これは基本的に1つのPHPファイルであり、最初の実行後にキャッシュされ、次回は毎回Memcachedから直接0.8ミリ秒で提供されます。
この時間を短縮するために、これ以上何ができますか?
Facebook用のPHPアプリケーションを作成しました。MySQL、Memcachedを使用し、Centos2,6Ghzおよび2GBRAMのlighttpdで動作します。
これは基本的に1つのPHPファイルであり、最初の実行後にキャッシュされ、次回は毎回Memcachedから直接0.8ミリ秒で提供されます。
この時間を短縮するために、これ以上何ができますか?
0.8ミリ秒に達すると、それより低くできるかどうかわかりません。
ただし、(共通のmemcachedを使用して)多数の同時リクエストを処理するように複数のサーバーを設定できます。その後、制限に達したときに新しいサーバーを追加するだけで、非常に大規模に拡張できます。
XDebugを実行し、プロファイラーを実行します。そこで、異常な時間がかかる機能があるかどうかを確認できます。
これらのログを読み取るプログラムを使用することをお勧めします。kcachegrindなどのように。
ところで、プロファイラーの国に入るとき、後戻りはありません。
httpプロキシと負荷分散を複数のサーバーに配置できます。ほとんどのhttpプロキシはキャッシュを兼ねることができ、アプリケーションの負荷を軽減できます。
また、ページがクライアント側でキャッシュできるように、適切なhttpヘッダーを送信するようにしてください。これにより、クライアントはキャッシュされたバージョンを再利用するため、リクエストの数を減らすことができます。
memcachedからデータを取得して表示するphpスクリプトがありますか、それともWebサーバー自体がmemcachedから直接データを取得しますか?
lighthttpdがmemcachedから直接ページを表示できるかどうかはわかりませんが、nginxがngx_http_memcached_moduleに対してこのグーグルを実行できることは知っています