MaxSpareServersはMinSpareServersより常に大きくなる

MPMがperforkのとき、Apacheの設定ファイル中でMaxSpareServersとMinSpareServersの値を同じに設定しても、Apacheの内部でMaxSpareServersがMinSpareServersより大きくなるように補正される。例えば、MinSpareServersとMaxSpareServersを両方とも256に設定した場合、MaxSpareServersが257に補正される。補正されても、Apacheのログには補正されたことが出力されない。

補正しているコードを以下に示す。コード中のap_daemons_max_freeとap_daemons_min_freeは、 それぞれMaxSpareServersとMinSpareServersを指している。

if (ap_daemons_max_free < ap_daemons_min_free + 1) /* Don't thrash... */
    ap_daemons_max_free = ap_daemons_min_free + 1;

引用元: http://svn.apache.org/viewvc/httpd/httpd/tags/2.4.4/server/mpm/prefork/prefork.c?view=markup

GitHubにレポジトリを移行する方法

他の場所にあるリポジトリをGitHubに移行させるための方法を書いたメモ。

移行元リポジトリをローカルにclone

$ git clone https://orig.repo.example.com/

ここで、https://orig.repo.example.com/は移行元リポジトリのURL。

ローカルリポジトリにある.git/configの編集

cloneしてできたローカルリポジトリで、.git/configにある以下の行をコメントアウトする。

$ cd repo-name/
$ vi .git/config

[remote "origin"]
       fetch = +refs/heads/*:refs/remotes/origin/*
       url = https://orig.repo.example.com/
[branch "master"]
       remote = origin
       merge = refs/heads/master

ここで、repo-nameリポジトリの名前。

移行先リポジトリの作成

GitHubにログインし、新規リポジトリを作成する。

移行先リポジトリへのpush

GitHubのページに表示される指示に従って、GitHubにある移行先リポジトリをローカルリポジトリに登録し、移行先リポジトリにpushする。

$ git remote add origin git@github.com:foo/bar.git
$ git push -u origin master

ここで、git@github.com:foo/bar.gitは移行先リポジトリ

移行先リポジトリにおけるブランチとタグの追加

このままだと、GitHubの移行先リポジトリにブランチはmasterのみ、タグはなしなので、追加する。

まず、ローカルリポジトリで、以下のシェルスクリプトを実行する。

実行すると、ローカルリポジトリにブランチが作成される。作成されるブランチは移行元リポジトリにあるものである。

次に、ローカルリポジトリにあるブランチとタグを移行先リポジトリにpushする。

$ git push --all
$ git push --tags

LXCコンテナに外部からアクセスする

環境

  • ゲストOS、ホストOSともに、Ubuntu 12.04
  • ゲストOSは、NAT接続(デフォルト)

やり方

ポートフォワーディングさせる。つまり、ホストOSのiptablesにルールを追加する。

host-os $ sudo iptables -t nat -A PREROUTING -d <ホストOSのIPアドレス> -p tcp --dport <ホストOSのポート> -j DNAT --to <ゲストOSのIPアドレス>:<ゲストOSのポート>
host-os $ sudo iptables-save

指定したホストOSのIPアドレスポートで外部から接続すると、ゲストOSのIPアドレスポートにつながる。