この記事では、パフォーマンスのトピックをあまり取り上げたくはありませんが(そうなるでしょう)、プロジェクトのすべてのソフトウェアがどのようにシームレスに起動するかを見るのは非常に興味深いです。 ソフトウェアを展開しただけで、イメージベースをどこにも移動しませんでした。 だから猫anime-pictures.netの下で、すなわち nginx、Python + Pylons + SQLAlchemy、PostgreSQL、Memcached、Redis。
私はすぐに予約します-メモは最後ではなく、これは最初の印象です。

設置
サーバーには安定したUbuntu 12.04があり、私のプロジェクトはhetznerのこのバージョンのOSでも実行されています。プラットフォームはより標準的なi7-3770と32ギガバイトのRAMのみです。 不要なサービスを削除して停止した後、必要なパッケージのインストールを開始しました。
- PostgreSQL :apt-getをインストールすると、コストがかかりますが、問題はありません。 まず、デフォルト設定(アクセスを除く)をすべて使用し、約10分でデータベースダンプを展開しました。
- Memcached、Redis :リポジトリから問題なくインストールされ、起動されました。すべてはx86と同じです。
- Pylons :apt-getを介してpipを配置し、pipを介してすでにvirtualenvをインストールし、内部でpiponsをインストールして、多数のパッケージを取得します。 gccが必要とするものも含めて、すべてが完璧に進みました(pythonの開発パッケージはそれ自体でインストールされました)。
- SQLAlchemy :pipセット0.9、0.8、0.7を通じて、すべてが完全に設定されました。 しかし、postgres.ARRAYのAPIが変更されたため、0.7を残す必要がありました。
- 枕(PIL) :ここで問題があると思いました。 実際のところ、ubuntu 12.04には古いバージョンのPILがあり、Pillowの新しいフォークはありません。 枕、これは画像を操作するためのライブラリであり、多くのCコードと、あらゆる種類のlibjpeg、libpngへのリンクがあります。さらに、Webサイトでは386、amd64、およびPPCのみをサポートしています。 したがって、Pillowをpipインストールすれば、すべてが問題なく実行されます。
- uwsgi :これは、Cコードを使用した同じ特定のプロジェクトです。 pipを介したインストールも完全に完了しました。
- nginx :それでも問題ありません。 構成および獲得。
- newrelic:誰もがシステムとアプリケーションを監視するためのこの優れたサービスを知っていると思います。 悲しいかな、彼とはうまくいかなかった。 クライアントバイナリを配布し、i386およびamd64専用のパッケージがあります。 それらのサポートを書き、多かれ少なかれ楽しい答えを受け取りました:
LinuxサーバーモニターでのARMサポートの要件についてお問い合わせいただきありがとうございます。
これを機能リクエストとして追加しました。 このチケットで提供したこの情報は、開発チームに渡されます。
そのようなサポートがすぐに登場する可能性は十分にあります。
性能
ARMのパフォーマンスについて多くのことが書かれていたので(この記事とサイトphoronix.comで)、あまり深刻な測定はしませんでした。 パフォーマンスは小さく、誰もそれを隠していません。
たとえば、テストページ(サイトに写真があるページの1つ)のレンダリング時間は0.200から0.230秒であり、追加の構成後、DBMSは0.120-0.160秒を達成できました。比較のため、ページはi7のどこかで0.050秒でレンダリングされます。 3〜4倍の差は怖くはないようです。
さらに、Apacheベンチの助けを借りて、サーバーが1秒あたり何ページ生成できるかをテストしました。 すぐに予約します。uwsgiの4つと8つのプロセスで確認しましたが、違いはありませんでした。 そのため、4コアARMサーバーは毎秒20リクエストを発行し、i7-3770は毎秒最大30リクエストを発行しました。 これは、どこかに首が細いので、先日修正したいと思っています。 私の推定によると、1秒間に少なくとも200件のリクエストを発行する必要があります(以前はこのような結果がありました)。
考え
- 少なくともPythonでは、すべてが箱から出して動作するので、新しいアーキテクチャを恐れないでください。
- これはVPSの優れた代替品です! 純粋に主観的なARMは、中/上部VPSとして機能します。 より多くのRAMとより多くのHDDが必要な場合は、ARM上のサーバーがVPSを置き換える可能性があります。 価格が同等になることを願っています。
- PylonsやDjangoのようなフレームワークで重いアプリケーションを実行するのはバカです。 これは非常に小さな訪問がある場合にのみ実行できます。
- Python / TornadoまたはC ++での非同期アプリケーションは、このようなサーバーに最適です。 現在、シングルページアプリケーションを使用した構成がよくあります。この場合、バックエンドはRedisやMongoDBなどの高速データベースへの単なるインターフェイスにすぎません。
実際、Tornadoで、特にこのサーバー用に小さなアプリケーション(真空中の球状のベンチマークではありません)を作成し、結果を確認したいと思います。 私はすべてがうまくいくことを望み、私はこの主題に関する別のメモを書きます。
猫/ proc / cpuinfo
プロセッサー:Marvell-PJ4Bv7 Processor rev 2(v7l)
プロセッサー:0
BogoMIPS:1325.46
プロセッサー:1
BogoMIPS:1325.46
プロセッサー:2
BogoMIPS:1325.46
プロセッサー:3
BogoMIPS:1325.46
機能:SWPハーフサムFastMult VFP EDSP VFPV3 TLS
CPU実装者:0x56
CPUアーキテクチャ:7
CPUバリアント:0x2
CPUパーツ:0x584
CPUリビジョン:2
ハードウェア:Marvell Armada XP GP Board
リビジョン:0000
シリアル:0000000000000000
プロセッサー:0
BogoMIPS:1325.46
プロセッサー:1
BogoMIPS:1325.46
プロセッサー:2
BogoMIPS:1325.46
プロセッサー:3
BogoMIPS:1325.46
機能:SWPハーフサムFastMult VFP EDSP VFPV3 TLS
CPU実装者:0x56
CPUアーキテクチャ:7
CPUバリアント:0x2
CPUパーツ:0x584
CPUリビジョン:2
ハードウェア:Marvell Armada XP GP Board
リビジョン:0000
シリアル:0000000000000000
猫/ proc / meminfo
MemTotal:8019640 kB
MemFree:4065896 kB
バッファー:115744 kB
キャッシュ済み:3421572 kB
SwapCached:0 kB
アクティブ:2119148 kB
非アクティブ:1654100 kB
アクティブ(アノン):354668 kB
非アクティブ(anon):22808 kB
アクティブ(ファイル):1764480 kB
非アクティブ(ファイル):1631292 kB
回避不能:0 kB
ロック済み:0 kB
高合計:7299036 kB
ハイフリー:3635332 kB
低合計:720604 kB
LowFree:430564 kB
スワップ合計:16777212 kB
スワップフリー:16777212 kB
汚れた:48 kB
ライトバック:0 kB
AnonPages:235956 kB
マップ済み:33484 kB
シュメム:141548 kB
スラブ:156072 kB
S再生可能:92748 kB
再請求:63324 kB
KernelStack:912 kB
ページテーブル:2904 kB
NFS_Unstable:0 kB
バウンス:0 kB
WritebackTmp:0 kB
コミット制限:20787032 kB
Committed_AS:587816 kB
VmallocTotal:122880 kB
VmallocUsed:21376 kB
VmallocChunk:60648 kB
MemFree:4065896 kB
バッファー:115744 kB
キャッシュ済み:3421572 kB
SwapCached:0 kB
アクティブ:2119148 kB
非アクティブ:1654100 kB
アクティブ(アノン):354668 kB
非アクティブ(anon):22808 kB
アクティブ(ファイル):1764480 kB
非アクティブ(ファイル):1631292 kB
回避不能:0 kB
ロック済み:0 kB
高合計:7299036 kB
ハイフリー:3635332 kB
低合計:720604 kB
LowFree:430564 kB
スワップ合計:16777212 kB
スワップフリー:16777212 kB
汚れた:48 kB
ライトバック:0 kB
AnonPages:235956 kB
マップ済み:33484 kB
シュメム:141548 kB
スラブ:156072 kB
S再生可能:92748 kB
再請求:63324 kB
KernelStack:912 kB
ページテーブル:2904 kB
NFS_Unstable:0 kB
バウンス:0 kB
WritebackTmp:0 kB
コミット制限:20787032 kB
Committed_AS:587816 kB
VmallocTotal:122880 kB
VmallocUsed:21376 kB
VmallocChunk:60648 kB
df -h
使用されるファイルシステムサイズAvail Use%Mounted on
/ dev / sda2 277G 4.6G 259G 2%/
udev 3.9G 4.0K 3.9G 1%/ dev
tmpfs 1.6G 296K 1.6G 1%/実行
なし5.0M 0 5.0M 0%/実行/ロック
なし3.9G 0 3.9G 0%/実行/ shm
/ dev / sda1 1008M 19M 938M 2%/ブート
/ dev / sda2 277G 4.6G 259G 2%/
udev 3.9G 4.0K 3.9G 1%/ dev
tmpfs 1.6G 296K 1.6G 1%/実行
なし5.0M 0 5.0M 0%/実行/ロック
なし3.9G 0 3.9G 0%/実行/ shm
/ dev / sda1 1008M 19M 938M 2%/ブート