5


1

私はCVSリポジトリに巨大なプロジェクトがあり、そのパフォーマンスを向上させる方法を探しています。 CVS圧縮はそれを助けますか? 暗号化についてはどうですか、それは速度が低下しますか?

ありがとうございます。

3 Answer


9


CVSは繰り返し使用すると時間が経つにつれて遅くなります。

  • プロジェクト全体をチェックアウトするとき、サーバーは作成する必要があります すべてのディレクトリ(それを削除した後でも-チェックアウト後にディレクトリをパージすると、これが隠されます)。

  • チェックアウトすると、すべてのファイルが開かれて検査されます。 数百/数千のファイルがある場合は非常に遅くなります。

  • 頭を出そうとしないと事態はさらに悪化します コンテンツをクライアントに送信する前に再構築する必要があるため、トランク。

それでもやはり、サーバーとクライアントの間でデータをシフトするパフォーマンスを向上させたい場合は、(コンテンツの種類によっては)-zオプションを使用して圧縮することができます。 私は-z6が最善であると思いますが、あなたのファイルの性質によっては、もっと/もっと圧縮したくないかもしれません。

_ _ * -z GZIPLEVEL *

サーバーとの通信時の圧縮レベルを設定します。 引数GZIPLEVELは、1から9までの数字でなければなりません。 レベル1は最小限の圧縮です(非常に高速ですが、あまり圧縮されません)。レベル9は最高の圧縮率です(大量のCPU時間を使用しますが、データは圧縮されます)。 レベル9は非常に遅いネットワーク接続でのみ役に立ちます。 ほとんどの人は3から5の間のレベルが最も有益であると思います。

-zとその引数の間のスペースはオプションです。 _ _


3


パフォーマンスの問題は通常IOに関連しています。 (あなたがあなたのCPUが100%で最大になるのを見ることができない限り)。 リポジトリをより高速なドライブアレイ(RAID 10以上のRPMドライブ)に配置してパフォーマンスが向上するかどうかを確認することをお勧めします。 インターネット経由でリポジトリにアクセスしている場合は、帯域幅の問題が考えられますが、話しているデータ量にもよりますが、単純なDSL接続でも処理できます。


2


cvsそれ自身はafaikを圧縮することはできません、しかし輸送のためにsshを使うならsshはそれをすることができます(そしてデフォルトでこれをします) 接続が遅い場合に役立ちます。 * edit:*実際にはcvsは-zオプションを持っています(sshが-Cを持っているように)

暗号化は、パフォーマンスを向上させるために使用するものではありません。 sshを使用しても暗号化は行われますが、それはパフォーマンスではなくセキュリティのためです。

リポジトリの場所にかかわらず、リポジトリと一時ファイルへのディスクアクセスはパフォーマンスに影響します。 それは記憶と結合しました。 チェックアウトするとき、cvsはクライアントに送るものを(一時ファイルとして)構築します。 これは多くの失敗を招き、場合によってはメモリ使用量を増加させました(大きなバイナリファイルを扱う場合は特に)。