• 締切済み

subversion の通信、レスポンスについて

初めて質問させていただきます。 会社でsubversionの1.7をCentOS5.7上にインストールし、レポジトリを作成し運用しています。 チェックアウト、コミットはできているのですが、動作についてもっと早くならないかと言われています。 クライアントでは、TortoiseSVNを利用していますが多量のデータをチェックアウトするときや、 アクセス開始時に若干タイムラグがあるように感じます。 これを改善するには、何かありますでしょうか。 クライアントからサーバへのレポジトリへは、svnでアクセスし、サーバ側でレポジトリのcon配下にpasswdとauthzファイルを置いてアクセス制限をしています。

みんなの回答

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>svnの1.7はwandiscoのシェルを利用してレポジトリを登録してyumでインストールしました。 公開されているものあったんですねぇ……。 まあ、私は現状の「自分でRPM作った」ものをそのまま使いますが。 # svnserveをxinetd経由で…とかいぢってあったりしますしね。 # OSはそのうち6.x系に移行予定ですし。(とか言いつつ1年過ぎているような気もしますが) >今日、CLIをインストールし、CLIで実行しましたが、改善は見られませんでした。 CLIでも一緒…となると、クライアント側ではないですね。 TortoiseSVNのリポジトリブラウザ、少し初期化が遅いような気はしていましたけど……。 # どっちかってぇと、国際化対応で各ダイアログの表示が切れる部分があるのが気になりますけどね。 # 問題の箇所はコードから見つけましたがVS2010製品版がないのでビルドして確認できない。 >ハードのスペックをかなり上げましたが、ハードスペックはそこまでボトルネックではない気がしてきました。 充分そう…ですねぇ。 あとは……ネットワークの帯域とかでしょうか。 が、そっちだとするとどうにもならないですよねぇ。 # 内部LANをGigabitにリプレース…は結構な出費になるでしょうし。 # 費用対効果が望めるかはさらに微妙。 ネットワークが混雑していて、再送とかが発生している……とか。 100MのスイッチングHUBならそんな事もそうそうないでしょうし……。 # さすがに非スイッチングHUBだったりすると問題でしょうけどね。 # サーバに近い部分が非スイッチングHUBだったら悲惨でしょうねぇ。 サーバのNICのドライバが適合していない。という可能性も考慮でしょうかね。 r8168なのにr8169のドライバが使われている。なんて場合は結構不安定になります。 # 中途半端に動くので始末が悪い。 リポジトリの構成が大きいようなら、いくつかに分割する…というのもアリかも知れませんが、 現状で動いているものを分割するのはかなり面倒ですし。 他に改善案が出てこないです。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>subversionの1.7をCentOS5.7上にインストール ソースからビルドしたんですかね? 私の自宅サーバ(CentOS5.9)にSubversionの1.7系を入れようと、既存のsrpmを書き換えてビルドしようとしたら依存関係で妙な事になったので1.6系のままなんですが……。 >クライアントでは、TortoiseSVNを利用していますが多量のデータをチェックアウトするときや、 >アクセス開始時に若干タイムラグがあるように感じます。 CLIのツールであるsvnコマンドでも同様ですか? 同様であればサーバ側の、同様でなければTortoiseSVNの問題…かと。 svnプロトコルでやっているようですので、余計なオーバーヘッドはないと思われますが……。 あとは……サーバ側のスペック次第でしょうかねぇ……。 私なら、チェックアウトやリポジトリブラウザはそう何度も使うモノでもないので気にしませんけどね。 # オープンソースのリポジトリを見る時とかは…確かに重いですけどね。

tenma0305
質問者

お礼

回答いただきありがとうございます。 >ソースからビルドしたんですかね? svnの1.7はwandiscoのシェルを利用してレポジトリを登録してyumでインストールしました。 このページを参考にインストールしました。 http://tech.thekyo.jp/centos5-6%E3%81%AB%E3%80%81subversion1-7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/772/ >CLIのツールであるsvnコマンドでも同様ですか? 今日、CLIをインストールし、CLIで実行しましたが、改善は見られませんでした。 既存のceleron、メモリ1GB以下、HDDのサーバからcorei5、メモリ4GB、SSDとハードのスペックを かなり上げましたが、ハードスペックはそこまでボトルネックではない気がしてきました。 ボトルネックの特定は難しいですね。

関連するQ&A

  • subversion復旧時の作業コピーについて

    subversion で、svnsync による同期で バックアップをとっています。 復旧時にはそのバックアップから再度空のレポジトリを作成し、 svnsyncで同期させて復旧しようと考えています。 同期を逐次行ってない場合、復旧時にはバックアップ先のレポジトリより ローカルにチェックアウトした作業コピーのリビジョンの方が新しくなります。 クライアントでTortoiseSVNを使用していますが、 ローカルで作業コピーからコミットをかけようとすると 最後のコミットから変更/追加されたファイルはありません。 今回、TortoiseSVNがすることはありません となり、コミットができません。 更新しようとすると「エラー リビジョンXはありません 」となります。 レポジトリをリストアした場合、チェックアウトし直すしかないのでしょうか。

  • Subversionのメリット

    質問を纏めました。 1.完成後の利用方法について 複数人で1つのレポジトリを完成させたら、そのレポジトリ(完成形)を他のサーバーなどにチェックアウトして利用するのでしょうか。 2.なぜ、レポジトリにはコミットしたファイルがファイル(example.txtなど)として、保存されないのでしょうか?わざわざチェックアウトしないとレポジトリが見えないのは手間になると思います。 3.あるファイルを(自分が)編集してコミットし、その後チェックアウトすると(自分が)編集した箇所が反映されています。svn update(マージ)する必要性はあるのでしょうか? ご回答をお願いします。

  • subversionのBASIC認証の回数について

    初めまして。x86machineと申します。 現在ファイルのバージョン管理を行うため、subversionの導入を行っております。 Linux(CentOS)サーバへsubversionを追記致します参考にしたサイトで紹介している設定方法に従ってWebDAV経由で Basic認証をパスする形でリポジトリでアクセスできるよう設定しました。 WindowsクライアントにインストールしたTortoiseSVNからリポジトリへアクセスしたところ、アカウントを間違えずに入力したとしても、 BASIC認証の要求ウィンドウが2~3回繰り返し表示されてしまいます。 要求された分、間違えずにユーザ名とパスワードを入力すればリポジトリを閲覧することができ、データのチェックアウトやコミットも行うことができます。 subversionでは、BASIC認証でパスワードを入力要求の回数は数回繰り返されるのが普通なのでしょうか? Apacheのエラーをログから確認したところ、認証を行っている間ずっとHTTPの207エラーをはいていたようです。 設定を見直したのですがどこがどう違うのか分からなかったため、質問を投稿させていただいた次第です。 WebDAV、若しくはsubversionの設定に何か間違いがあるのでしょうか? コンフィグ・ファイルの内容と、Apacheのエラーを追記致しますので、何かご回答をいただければと思います。 また、質問内容や原因を判断するにあたっての必要なデータに不足がありましたら、お手数ですがこちらもご指摘いただきたいと思います。 宜しくお願いします。 ----------------------------------------------------------- ・環境について  サーバ   : CentOS 5.0  クライアント: Windows 2000 Professional (32bit) 及び Windows XP Professional (32bit) Apache : 2.2.3-11.el5 subversion : 1.4.2-2.el5 mod_dav_svn : 1.4.2-2.el5   他   : TortoiseSVN 1.5.6, Build 14908 - 32 Bit ・リポジトリの作成場所  /var/www/配下に"svn"フォルダを作成し、その中に作成。 ・subversion,WebDAV設定の際に参考にしたサイト  http://www.proton.jp/apps/subversion.html  http://sfi.hamazo.tv/e1447564.html  http://d.hatena.ne.jp/ishikawa84g/20080915/1221424863  http://www.server-world.info/note?os=ce5&p=subversion  http://park1.wakwak.com/~ima/centos4_subversion0001.html ・subversionのコンフィグファイルの内容       …… <Location /svn/> DAV svn SVNParentPath /var/www/svn #Limit write permission to list of valid users. #<LimitExcept GET PROPFIND OPTIONS REPORT> #Require SSL connection for password protection. #SSLRequireSSL AuthType Basic AuthName "Authorization Realm" #AuthUserFile /path/to/passwdfile AuthUserFile /var/www/svn/.htpasswd AuthzSVNAccessFile /etc/httpd/svnaccess Require valid-user #</LimitExcept> </Location> ・BASIC認証時、Apacheのエラー  (端末からsvnuserとしてリポジトリへアクセス。) 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "OPTIONS /svn/project HTTP/1.1" 200 - 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project HTTP/1.1" 207 653 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project/!svn/vcc/default HTTP/1.1" 207 404 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project/!svn/bln/9 HTTP/1.1" 207 455 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project HTTP/1.1" 207 653 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project/!svn/vcc/default HTTP/1.1" 207 404 ……

  • subversionのリポジトリの作成を簡単にしたい

    現在subversionを使おうと考えているのですが、 クライアントマシン(192.168.0.2)にはTortoiseSVNをインストールして subversionはサーバーマシンLinux(192.168.0.50)にインストールをしており 通常の操作などはインポート、コミット、チェックアウトなどはTortoiseSVNを使っており 非常に満足しているのですが Projectやものによっては、リポジトリ先を別けていたほうが良いので そのたびに リポジトリの作成は、Linuxのマシンの方で svnadmin create --fs-type fsfs [PATH] などしたり Apacheの設定で httpd/conf/httpd.conf アクセス権限なども、都度都度作成しなければならず非常に面倒です。 これら何とかブラウザ上で、Project名を入力したら 自動的にリポジトリの作成とリポジトリにアクセスできる為の設定の変更が 勝手にできるようにならないでしょうか? やはりlinuxのコマンドをチマチマと入力しなければならないんでしょうかねぇ? もしそんなツール類があれば御紹介していただけないでしょうか? お願い致します

  • Subversionでチェックアウトができなくて困っています

    はじめまして。 現在 LAN 上の Ubuntu にリポジトリを作成し、 同一 LAN の Windows から svnserve を使って ファイル管理を試みようとしています。 すでに Ubuntu には subversion を、Windows には TortoiseSVN を インストールしており、Ubuntu にはリポジトリも作成しました (リポジトリは /home/svn/svntmp/repo というディレクトリです。)。 そして Ubuntu から Windows へデータをチェックアウトしようと していますが、そこが上手くいきません。 チェックアウトしようとすると失敗してしまい以下のような エラーメッセージが表示されます。 「No repository found in 'svn://***/home/svn/svntmp/repo/'」 (***はホスト名です) どうしてチェックアウトできないのか、 またどうすればチェックアウトできるようになるのか、 教えていただけると幸いです。 よろしくお願いいたします。 環境は ・Ubuntu デスクトップ版 7.10 ・Windows XP Pro をそれぞれ使用しています。 また Windows には TeraTerm を入れて SSH 接続で Ubuntu を動かしています。

  • SubversionのHTTP仕様

    SubversionとHTTPで接続する機能として、Apacheの拡張モジュールのmod_dav_svnや、クライアント側としてはTortoiseSVN等がありますが、これらのインターフェースと互換のプログラムを開発する必要があり、仕様を知りたいと思っています。 仕様書を探してみたのですが、詳しい情報が見つかりません。 情報源かありましたら教えてください。

  • [Subversion]異なる場所での作業ファイル

    Subversion(クライアントはTortoiseSVN使用)で、 下記2点について、詳しい方がおられましたら、お教えいただけないでしょうか。 ●以下の操作をするとコミット時にエラーが出るのかどうか ●やってはいけない操作であるならば、正しい方法について 1)「dummy.jpg」をマシンA(Subversion導入なし)で編集 2)マシンAで編集した画像を、マシンBで、Subversion管理下にある同名ファイル  「dummy.jpg」に上書き 3)コミット 宜しくお願いいたします。

  • SubversionとEclipseをLAN内で使いたい

    件の内容がうまくいきません。 ファイルサーバとなるメインマシン(XP)にSubversionをインストールしました。 Subversionでレボジトリを作成、ファイルをインポートし、 クライアントとなるノートPC(Vista)にもEclipseにSublipseプラグインを導入しました。 ここまではうまくいったのですが、SVNレポジトリでのURL指定の方法が分かりません。 仮に、 ■メインマシン名:VARIE ■レポジトリの場所:G:\svn\repos  として [G]ボリュームにはdataという名前がついているので file:////Varie/data/svn/repos/ と入力しましたが、見えないようで以下のエラーが出てしまいます。 --- svn:Unable to open an ra_local session to URL svn:Unable to open repository 'file:////Varie/data/svn/repos/' --- ちなみにTortoiseSVNでもうまくいきませんでした。 質問が分かりづらくてすみません。いろいろ調べたのですがわかりませんでした。 どなたかお分かりになる方がいらしたら教えて下さい。

  • subversionでコミットしたらftpなどしなくても即反映したい

    最近subversionを試験的に導入してみているのですが これがあればソースコードの一括管理などが出来き 趣味ですが1人で開発するにしても世代管理などがあっていいですね! そこで最近、このように出来ないのか?と悩んでおります。 ---------------------------------------------------------------- ■subversionが導入される前 1.Windows上のローカルで開発(127.0.0.1) ↓ 2.LinuxにあるFTPサーバー(192.168.0.50)へアップロード ↓ 3.Windows上のブラウザで表示の確認(http://192.168.0.50/) といったようなことをしていたのですが、ソースコードの世代管理と一元管理をしたいので FTPサーバーが立っているLinux(192.168.0.50)にsubversionをインストールしました。 ■subversionが導入された時(導入された今の現状) 1.Windows上のローカルで開発(127.0.0.1) ↓ 1b.Linuxにあるsubversionサーバー(192.168.0.50)へTortoiseSVNを使用してコミット ↓ 2.LinuxにあるFTPサーバー(192.168.0.50)へアップロード ↓ 3.Windows上のブラウザで表示の確認(http://192.168.0.50/) ですが、以下のような手順にならないでしょうか? ■subversionが導入された時(こんな風にはできないの?) 1.Windows上のローカルで開発(127.0.0.1) ↓ 2.Linuxにあるsubversionサーバー(192.168.0.50)へTortoiseSVNを使用してコミット ↓ 3.Windows上のブラウザで表示の確認(http://192.168.0.50/) ---------------------------------------------------------------- つまり具体的な開発のシーンケースはこのような感じです。 Windows上で開発をしています。 そこでチェックアウトされたファイルを作ったり変更したり作成を行いました。 そして、ある程度、ローカルで色々開発をしローカルで動作確認をした後、 TortoiseSVNでコミットをします。 そのコミット先は、subversionのリポジトリ(192.168.0.50)です。 その後、WindowsでFFFTPを使用して、(192.168.0.50)のサーバーにアップロードをします。 アップロード後、Windowsでhttp://192.168.0.50/ でアクセスをして確認をします。 この状況でも満足なのですが、 もっと欲を言えば、コミットの作業をしたら、ファイルが自動でftpなどがされ 即時反映しないのかな?と思うのです。 もしもこのような動作が無理であれば リポジトリになどに対して現在の最新のリビジョンのファイルって 持たせることはできないんでしょうか? なにぶんsubversionは(私ではノウハウが弱い) まだ具体的になにが出来てなにが出来ないといったことが 理解できてないので、そういうの出来ますよ。それは無理ですよ。 といった事柄でも助かります。 ただlinuxに対してもノウハウが弱いので、 もしこのようなことが可能であるならば そのようなサイトなどを紹介しているサイトか、詳細を教えていただきたいと思います。(linuxはredhatを使用しています)

  • subversionのpost-commitでsvn upを行うと、パーミッションエラー。

    クライアントからコミットした際に、post-commitで、svnでチェックアウトしている/var/www/sampleprojectディレクトリを"svn up"コマンドで更新をしたいと思っております。 しかし、tortoiseSVNからコミットすると、以下のエラーが表示されてしまいます。 <pre> エラー: post-commitフックが失敗しました (終了コード: 1)。出力: エラー: svn: ファイル '/var/www/sampleproject/.svn/lock' を開けません: 許可がありません </pre> post-commitの内容: <pre> #!/bin/bash REPOS="$1" REV="$2"LOG=/var/log/svn.log export LANG=ja_JP.UTF-8 echo $2 > ${LOG} whoami >> ${LOG} /usr/bin/svn up /var/www/enjoynight >> ${LOG} </pre> post-commitで出力したログを確認してみると、"svn up"を実行しているユーザーは"user1"でした。 /var/www/sampleprojectのオーナーはapacheユーザー(apache.apache)です。 ためしに、"user1"にapacheグループ権限を追加してみましたが、結果は変わりませんでした。 一日中悩んでも解決出来ませんでした。 もしよろしければ、どなたか解決策をご教授頂けないでしょうか。 サーバーOS:CentOS5.3 Subversion:1.6.2 Apache:2.2.3 passenger:2.2.3 Ruby:1.8.7 Rails:2.3.2 クライアントOS:Windows Vista tortoiseSVN:1.6.5 リポジトリへの接続方法:svn+ssh コミットユーザー:user1