0

単一のコンピューターで実行される Web アプリを構築し、ハードウェア リソースを可能な限り効率的に利用することを計画しています。アプリのロジックは複雑ではありません。以下は私のデザインです:

OS:Linux(CentOS5)

ウェブサーバー: Nginx

Web スクリプト: PHP

データベース:東京内閣+東京暴君

目次:スフィンクス

MySQL などの RDBMS を使用するつもりはありません。インデクサー (Sphinx) を備えたキー値ストア (東京キャビネット) が、通常の Web アプリを展開するすべてのニーズを満たし、MySQL よりもパフォーマンスが優れていると考えているためです。

私の質問は次のとおりです。この設計は、単一のコンピューターにとって効率的なアーキテクチャになるのでしょうか? またはそれを改善する方法は?

(この質問は主観的なものかもしれませんが、本当にあなたの助けが必要です)

どうもありがとうございました〜

編集:

アプリをホストするコンピューターは、8 GB ~ 16 GB のメモリ、500 G ~ 1 TB のハード ディスクなどの通常の PC です。「スケーラビリティ」を考慮する必要はないと思います。Web アプリのすべての最初のステップは、1 台のマシンから開始され、常に始まります。

4

2 に答える 2

1

DBの選択

作成するデータベースの種類の選択は、システムがホストされているコンピューターの数にあまり依存しないと思います。これは、保存したい/保存する必要のあるデータの品質の関数である必要があると思います。

たとえば、顧客の配送先住所を保管する必要がある場合は、保管構造でそれを考慮する必要があります。名前と値のペアは、最初は簡単に思えるかもしれませんが、次のいずれかが予想される場合は、標準のデータベースシステムへの移行を検討する必要があります。

  • 変更を追跡する
  • レポート活動/レポート
  • 同時ユーザー

パフォーマンス

これは、データベースにあるのと同じように、コード、画像、コンテンツ、キャッシュなどに依存します。

于 2010-01-27T02:14:08.460 に答える
1

さて、確認する1つの方法は、負荷テストを行うことです:http: //grinder.sourceforge.net/

東京のキャビネットを使ったことがないのですが、機能的に十分であれば、DBよりもかなり高速になるでしょう。

ただし、長期的には、1つのボックスで動作するようにアプリを調整することで実現する節約は、そのボックスを超えてスケ​​ーリングを開始するとすぐに失われます。多くのキャッシュを追加しようとすると、アプリを高速化するためのハックはこれまでのところしか進みません。さらに重要なのは、さまざまなレイヤーをどれだけ簡単に切り離すことができるかを考えてみることです。

于 2010-01-27T02:14:08.960 に答える