2009-08-30 10 views
1

Zend Frameworkに基づいて新しいPHPフレームワークを作成しています。 Web開発用の汎用MVCフレームワークになります。私は、ロギングを使用すべき
新しいフレームワークにおける一般的なログ、キャッシング、パフォーマンスについて

  1. がロギング: は、私は2面が心配ですか?ロギングを使用する際に大きなパフォーマンス上の問題はありますか?

  2. キャッシュデータベースクエリ:
    データベースからいくつかのクエリをキャッシュします。 私はユーザー関連の情報をキャッシュすることを心配しています。ユーザーに関する情報があるとします。彼らの個人情報などのように。 私はそのようなデータをキャッシュすると、すべてのユーザーのキャッシュファイルが私のデータフォルダに生成されます。今では、2時間の時間内にオンラインで10,000〜20,000人のユーザーがいるとします。これは、自分のフォルダに20000個のファイルがあることを意味します。
    私の質問は、それは私のサーバーのパフォーマンスに影響を与えるかどうかです。フォルダがサーバ上に持つことができるファイル数の上限はありますか?

答えて

2

ファイルベースのキャッシュを使用しないでください。ファイルシステムの操作は非常に遅いです:http://imgur.com/X1Hi1.gif。 memcachedを使用すると、上記の投稿に反してたくさんのメモリを必要とせず、必要なメモリ量は格納する量に比例し、memcachedはアクセス頻度に基づいてデータを取り出すことができます。

1

1)確実にログを記録したい場合は、http://www.xdebug.org/で利用可能なxdebugをお勧めします。あなたは自分のサイトでパフォーマンスオーバーヘッドについてさらに読むことができます。 (plusはEclipseのPHP版とうまく組み合わされています)。

2)私は多くのユーザ情報をキャッシュしたいとは思っていませんが、memcacheはおそらくphp(http://se2.php.net/memcache)のキャッシュのためのより良い選択肢の1つです。そして、えええええええええええええええええええええええええええええええええええます、ファイル番号に制限はありません。あなたはおそらく32ビットファイルサイズ制限を超えることはありません=)

+0

ロギングを使用している場合。では、なぜZend_Logを使用しないのですか?それに問題はありますか? –

0

キャッシュは本当の問題です。ユーザー/プログラマーの観点からは、 。私はユーザーデータと同じくらいシンプルなものをキャッシュしません。これはすでにデータベースにキャッシュされています。複雑なクエリと完全なWebページ(またはその一部)にもっと集中してください。

stackoverflowのようなページがない限り、何かをキャッシュするための方法は実際にはわかりません。あなたのサイトでユーザーが何をするかについてログファイルをチェックしてください。すぐにホットスポットが表示されます。

あなたのマシンに多量のメモリ(> 8GB)がない限り、Memcacheは私にはお勧めできません。 Memcacheは、Memcacheサーバーを16 GBで投げれば何も処理せずにキャッシュするだけです。

小規模なサイト、ハードウェア、および要件については、これはデータのオーバーヘッドが非常に少ないキャッシュであるため、同時にAPCの実行を高速化します(APCを使用しないでプロダクションサーバーを実行したくないバイトコードキャッシュ)。

関連する問題