新しい専用サーバー構成





本日、専用サーバーの新しい構成であるIntel Xeon E3-1270v3、32GB RAM、2x240GB SSDを紹介します。 これらの短い数字の背後には本当に素晴らしい機会があります。 それらをより詳細に検討しましょう。



新しい構成では、最新のIntel開発(Haswellアーキテクチャに基づくXeon E3プロセッサ)が使用されます。 Haswellファミリのプロセッサは、3次元トランジスタ(Tri-Gateテクノロジ)を使用した22ナノメートルプロセスで利用できます。



革新の中で、まず、AVX2およびFMA3命令セットのサポートに名前を付ける必要があります。これにより、プロセッサは単一クロックサイクル内で加算および乗算演算を実行できます。 理論的には、これにより生産性が大幅に向上します。 これらの手順を使用するには、コードを更新するか、少なくとも再コンパイルする必要があります。



第二に、Haswellプロセッサの特徴は、L1およびL2キャッシュへの拡張帯域幅です。これにより、データへのアクセス、したがってアプリケーションの実行が大幅に高速化されます。



第三に、新しいプロセッサには、トランザクションメモリのハードウェアサポートが含まれています。 多くの専門家は、この革新を近年のx86アーキテクチャの最も重要な拡張と呼んでおり、個別に説明する価値があります。



トランザクションメモリ



すべてのプログラムには、データが保存される可変メモリ領域があります。 複数の制御ストリームがこのデータを処理する場合、並列アクセスに問題がないように作業を整理する必要があります(たとえば、別のストリームから並行して書き込まれているメモリ領域の読み取り、または2つのストリームからの同時書き込みなど)。



ほとんどのマルチスレッドアプリケーションは、これらの問題を防ぐためにロックベースの同期を使用します。 データにアクセスする前に、データにロックを設定する必要があります。 1つのスレッドがデータを変更している間、他のスレッドはこのロックが解除されるのを待っています。 複数のスレッドの並列動作を保証するには、プログラムデータの多かれ少なかれ依存する部分ごとにロックを設定する必要があります。 ただし、これを実践することは非常に困難です。



ロックベースの同期に代わる方法は、トランザクションメモリを使用することです。 トランザクションメモリメソッドは、次のように機能します。スレッドは、他のスレッドが何をしているかに関係なく共有メモリの変更を完了し、ログファイルに読み取りまたは書き込みを記録します。 完全な操作が完了した後、リーダーは、他のスレッドが以前にアクセスしたメモリに変更を加えたかどうかを確認します。 変更の競合のためにトランザクションを完了できない場合、トランザクションは中止され、正常に完了するまで再度実行されます。 このアプローチの利点は明らかです。リソースにアクセスするために待機する必要のあるスレッドはなく、異なるスレッドはロックによって保護される重複しないデータ構造を同時に変更できます。



最近まで、トランザクションメモリのサポートはプログラムでのみ実装できました。 トランザクションメモリのソフトウェアサポートは非​​常に複雑で時間のかかるタスクであり、すべてのプログラマが実行できるわけではありません。 x86アーキテクチャの新しい拡張により、ハードウェアレベルで多くの問題を解決できるようになり、確実に前進します。



Haswellのトランザクションメモリサポートは、TSX(トランザクション同期拡張)命令セットを使用して実装されます。これには、HLE(ハードウェアロック省略)とRTM(制限付きトランザクションメモリ)の2つのメカニズムが含まれます。



HLEメカニズムは、ロックを備えたマルチスレッドアプリケーションのパフォーマンスを向上させることができます。 XACQUIREおよびXRELEASEプレフィックスを使用します。 ブロックされたアトミック操作の実行を指示する命令の前にXACQUIREプレフィックスが配置されている場合、ロックは解除されます。 同じ命令の前に置かれたXRELEASEプレフィックスは、プロセッサを「ロック」を含む「通常の」動作モードに戻します。 もちろん、ブロックせずにアトミック操作を実行すると、エラーが発生します。 制御ロジックは、問題の状況の発生を監視します。エラーを引き起こしたコードのセクションが再び実行されますが、ロックはオンになっています。



RTMメカニズムは、XBEGIN、XEND、およびXABORTプレフィックスを使用します。 XBEGIN命令は、ロックされていないプログラムスレッドによってアクセスされるメモリ領域で動作するコードのセクションの実行を開始するようにプロセッサに指示します。 すべてのエラーはハードウェアによって検出され、制御は命令で指定されたアドレスのプロセスに転送されます。 プロセッサは、XBEGIN命令が開始されたときの状態に自動的に戻ります。 XEND命令は、トランザクションメモリで動作するコードセクションの実行が完了したことを通知します。 プログラムでエラーが検出された場合、XABORT命令はこのエラーを処理する手順を明示的に開始します。



TSXは、GCC v4.8、Microsoft Visual Studio 2012の最新バージョン、Intelの最新C ++コンパイラ、およびLinuxアプリケーションで広く使用されているGlibc v2.18ライブラリで既にサポートされています。 TSXは、ロックを微調整することなく、マルチコアプロセッサの優れたスケーラビリティを可能にします。 プログラマはプログラムコードを変更する必要さえありません。適切なライブラリをプラグインするか、コードを再コンパイルするだけです。



その他の機能



新しい構成は、ディスクサブシステムを集中的に使用するストレージサーバーに最適です。 各サーバーには、容量が240GBの2つのソリッドステートドライブ(SSD)が装備されています。 最新のSSDは、アクセス時間が短いだけでなく、高速の読み取り/書き込み操作が特徴です。 大規模なデータベースをホストし、ホットWebストレージデータをキャッシュするために使用できます。



新しい構成のサーバーには32GBのRAMが搭載されています。 このボリュームは、Redis、Memcached、Couchbaseなどの十分に大きなメモリ内データベースを使用するのに十分です(データをRAMに直接配置し、データベースの状態を定期的にディスクに保存します)。 同時に、メモリ内のクエリの集中的なキャッシュにより、従来のデータベースのパフォーマンスも向上します。



もう欲しい!



モスクワとサンクトペテルブルクでは、新しいサーバーがすでに注文可能です。 レンタル価格は月額わずか7,500ルーブルです。

Habréの投稿にコメントできない場合は、 ブログにご招待します。



PS



新しいグラフィックコアのおかげで、Haswellプロセッサをベースにしたサーバーは、ビデオをオンザフライでトランスコードする優れた仕事をし、たとえば、ビデオブロードキャストおよびホスティング用のハードウェアプラットフォームとして使用できます。 さらに、より効率的なグラフィックスサブシステムにより、新しいプロセッサは仮想デスクトップサーバー(VDI)のパフォーマンスとクライアントの密度を向上させることができます。

新しい構成で使用されるIntel XeonプロセッサE3-1270v3には、統合グラフィックスコアがありません。 Haswellファミリプロセッサのグラフィックコアを使用できるタスクが仕事にある場合、E3-1285v3プロセッサを搭載したプラットフォームを1か月間提供できます。 その見返りとして、テストレポートの提供をお願いします。テストレポートはブログで共有します。 チケットシステムを使用して簡単なテストプランをリクエストできます



All Articles