より多くのRAMとより多くのサーバー


9

最近、「RAMを増やすかサーバーを増やすかを判断するタイミングを知っていますか?」(データマイニングアプリケーションのスケーリングのコンテキストで)。

わからなかったので、どのように決めるのですか?私はアーキテクチャとスケーリングの知識がほとんどないので(コンピュータのメモリとサーバーが行うことの理解は高レベルの基本に限定されています)、これらの一般的なことをさらに学ぶためのヒントも大歓迎です。


3
両方もらえますか?
Dirk Eddelbuettel、2010年

1
私が考えることができるすべてのインスタンスでより多くのRAM ...(サーバーがRAMで最大になることを除いて)
jcolebrand

3
ほとんどのと同様に、sysadmin。可能であれば、最良の答えは、開発システムまたは本番システムでデータを収集し、収集したデータに基づいて決定することです。
Zoredache

質問しているのは、スケールアップするかスケールアウトするかです。
micmcg

ほとんどのデータマイニングソフトウェアは1台のコンピューター用に設計されています。したがって、より多くのRAM。Mahoutまたはparallel-Rを使用している場合、あるいは何を使用している場合は、より多くのサーバーが必要です。Amazon AWSサーバーをレンタルして、#servers / ramの最適な組み合わせを見つけるための実験を行います。
Neil McGuigan、

回答:


8

「RAMを増やすか、サーバーを増やすかをいつ決めるか知っていますか?」(データマイニングアプリケーションのスケーリングのコンテキストで)。

答えは、問題のサーバーのメトリックスを教えてくれたらすぐに教えてくれます(または、いずれかを追加する価値があるかどうか)。このタイプのチューニングはブードゥー教ではありません(インストルメンテーションのないアプリケーションとインストルメンテーションのないサーバーOSを使用している場合を除いて、そうですね、それはブードゥー教です)。アプリケーションとサーバーを測定します。簡単に言えば、モニタリング指標を使用して、パフォーマンスのボトルネックがどこにあるかを把握し、それをさらに追加します。


いいえ、それはまだブードゥー教ですが、あなたは魔女の医者です!要点は..初心者はこの答えをどのように使用して問題を解決しますか?彼が調べる必要のある基本的なメトリックは何ですか?また、どのような数値が意味があるかをどのようにして知るのですか?私のポイントを得る...
tomjedrz

こういう風に昔の気球のジョークを思い出させます。officediversions.com/discover/modules/wfsection/...
tomjedrz

基本的なメトリックの答えは、システムによって異なります。質問が一般的すぎるため、基本(CPU、メモリ、ディスクなど、アプリケーションモニター)以外の具体的な答えを出すことは不可能です。架空の新生物を考えると、最初に問題のサーバーを監視する方法を知る必要があるため、彼らはこの問題に対する答えを得ることができません。これは完全に別の質問です
Jim B

5

一般に、サーバー/アプリケーションのパフォーマンスの向上にはかなりのブードゥー(または少なくとも試行錯誤)があります。

具体的な質問のための一般的なルールはこれ以上増加させることができないまで、第1のメモリを増やすことである頼まないORまでより多くのメモリは、もはやパフォーマンスが向上します。メモリが比較的安価な場合は、単にメモリを最大化する方が簡単です。また、アプリケーションがディスクを多用する場合、高速ドライブまたは高性能コントローラーにアップグレードすると、違いが生じる可能性があります。

ただし、質問の非常に一般的な性質から、パフォーマンスを改善する他の試みはなかったと私は思います。ハードウェアは安価であるため、問題が発生したときにサーバーを増やすことも簡単です。ただし、他の手段、特にOSとデータベースのチューニングが行われていることも確認します。場合によっては、データベース、OS、またはアプリケーションの構成を少し調整するだけで、パフォーマンスが大幅に向上することがあります。

特定のOS、データベース、アプリケーションでこのサイトを検索してください。


5

エンタープライズアーキテクトとして、私はほぼ毎日この問題に対処してきました。垂直または水平スケーリング?

あなたのニーズは何ですか?

より多くのユーザーをサポートする必要がありますか?サービスの速度を改善する必要がありますか?両方必要ですか?高可用性99.9999が必要ですか、それともユーザーがダウンタイムをとることができますか?

まず、現在のシステムのパフォーマンスメトリックをキャプチャする必要があります。アクティブユーザーの数、RAMとCPUの負荷、ディスクI / O-ボトルネックがどこにあるかを調べます。

問題に基づく可能な解決策:現在のリソースの最適化から始めます。アプリケーションがデータベース駆動型の場合は、クエリキャッシュやスレッドキャッシュ、インデックスなどを使用してデータベースを最適化します。他のアプリケーションとサーバーを共有している場合は、専用サーバーへの移行を検討してください。(仮想化を調べて、アクティブでない/重要なアプリケーションが専用リソースを解放するようにします)。

現在のマシンはフル容量で、RAMとCPUの負荷が高く、ディスクI / Oが高い-RAMを追加するためのコストを計算します。より高速なディスクI / Oに切り替えられますか(RAID、ATAの代わりにSATA)?

高可用性が必要な場合は、おそらくハードウェアと負荷分散を追加する必要があります。

ハードウェアのアップグレードを追加したり、新しいサーバーを追加したりする方が安いですか?どちらが長期的な目標と成長に適していますか?

IT部門がお金を使うのに最適な時期はいつですか?現在資金はありますか、または経費を別の四半期/年にシフトしますか?資金に問題がある場合は、今すぐ最適化するか、他のアプリケーションからハードウェアを解放して一時的な負荷分散ソリューションを追加することを検討してください。

数多くのソリューションを検討することを恐れないでください。ベンダーによっては、iSCSI RAID 10を搭載した新しいサーバーがコストの10%で機能する、負荷分散されたSANストレージ中心のソリューションの購入を求めている場合があります。

最適化後もCPUの負荷が高い場合は、ハードウェアを追加または交換する必要があります。ディスクI / Oがボトルネックであり、ストレージテクノロジーをアップグレードできない場合は、ハードウェアを交換するか、ネットワークストレージ/接続されたストレージソリューションを追加する必要があります。

パフォーマンスメトリックをキャプチャします。メトリックを最適化、改善、および再度キャプチャします。パフォーマンスの増加/減少を文書化し続けることで、費やした費用とパフォーマンスがどれほど向上したかを文書化したレポートを提出できます。これらは、管理者をアーキテクトに、アーキテクトをプロジェクトマネージャーに、PMを上層部の管理職にできる成功事例のタイプです。


2

あなたはページングしていますか?RAMを使用してディスクをキャッシュしますか?CPUは空きRAMにバインドされていますか?

ページングしている場合や、RAMを使用してキャッシュできる場合は、RAMを増やします。RAMのプレッシャーに遭遇していない場合、それは別の問題です。


2

RAMは安いです。常に最初に、そこに最も経済的な数量を確保する必要があります(たとえば、4GB DIMMは非常に高価なので、私はそれらに悩まされることはありません)。

次に、横方向のスケーリングを調べます(より多くのサーバー)。安価なコンシューマハードウェアと高価なサーバーパーツを比較してください。ただし、障害を想定し、フェイルオーバーの見積もりを総処理能力に組み込んでください。

基本的に、Googleを実行します


1

どのOSを使用しているか、どのくらいのRAMをサポートしているか、どのくらいのRAMを持っているかについても質問します。32ビットOSの限界に達している場合は、RAMを追加購入しても効果はありません。Windowsを使用している場合、特定のSKUは、32ビットの制限に正確に関連していない特定の量のRAMに制限されます。


1

一部の人々は、RAMの追加は魔法の修正であると考えているようです。RAMがボト​​ルネックである場合にのみ役立ちます。


「魔法」ではありませんが、比較的安価で、ほとんどの場合、最初の試みとしては優れています。
tomjedrz

1
@ tomjedrz:そうでない場合を除いて、最初の試みとしてはよいでしょう。それは本当に非常に簡単です-「科学としてのシステム管理」を実行し、それが必要であることを示すテストとリソースの監視を行った後、マシンにRAMを追加しますか、それとも「宗教的カルトとしてのシステム管理」を実行して追加しますか宗教的な巻物が少し遅いサーバーのための正しい祈りであると私たちに言っているので、マシンにRAMを追加しますか?個人的には科学的なアプローチを好む。
Rob Moir

0

より多くのRAM =より多くの仮想マシン。

だから私はより多くのRAM =より多くのサーバーを想定しています!!


1
仮想マシンの数が増えると、必要なiopsも増えます。ramは、操作する多くのリソースの1つにすぎません。
トニーロス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.