nativeなlinuxが必要なときたまにwubiを使うことがあるのですが、今回はそのイメージをWindows VirtualBox上のLinuxから見る、という記事です。
ConoHa VPSでbottle
前回
に引き続き、VALUE SERVERからConoHa VPSに移行して動かなくなってたところを直していきます。今回はコレですね。
bottleです。Hello, worldしただけなんですけどね。VALUE SERVERではpython3自体がインストールされていたので、Apacheのmod_cgiを使い、CGIでpythonを起動して動かしていました。
これを今回はdockerコンテナ上のnginxからWSGIで別のdockerコンテナ上のpythonに繋ぎ、bottleを動かします。まあ最近bottle聞かなくなりましたけど。。。
apacheからnginxに移行したので、不要になった調査結果を削除しました
前回はgitのセルフホスティングを移行した話でしたが、
今回はwebサーバーの移行についてです。とはいえ、すでに移行自体もその説明もしちゃったのですが、今回は目的や動機などの背景部分や、不要になった調査結果の分析、、、でもしようかなと思います。まあ追加される事実もないので、読む価値ありません。
gitlistからgiteaへ
前回はdockerコンテナの起動・停止を独立してできるようにしたので、
今回は新しいコンテナでgitを動かしてみます。
VALUE SERVERはレンタル共有サーバーであり、まともに動くのはPHPだけでした。バージョンは多少古いもののgitコマンドも元から入っており、この組み合わせでgitリポジトリをセルフホストするなら、gitコマンドを必要とし、PHPで動作するgitlistは最適だったと思います。
しかしConoHa VPSに移行しPHP縛りという呪いから開放された現在、同じgitlistで満足してていいのか?と自問した結果、以下の3択ではないかとの結論に至りました。
- 見た目はショボいが最高に低コストで動作する、本家git付属のGitWebに移行
- 見た目もそこそこでコストがPHP分だけになる、gitlistの続投
- 見た目も機能も抜群に良く、同等な機能を持つ競合に比べてコストが低いgiteaに移行
VPSがメモリ1Gでなければ迷わず3なのですが、その気になればプルリクエストが出来たり認証手段も豊富な高機能gitリポジトリセルフホスティングアプリはメモリ消費量が格段に多いのです。giteaはgoで書かれ、Raspberry Piでも動く軽量アプリというのが売りなのですが、それでも何もしてなくてもRSSが150MBほどなわけです。PHPや他のプロセスが50MB程度で顔デカイと思われてる中、その3倍の幅で鎮座しちゃってるのです。しかも仮想メモリVSZを見るとこの人1GBほど使ってて、もう無理!とほぼ諦めてGitWebを調べ始めてたのですが、、、こないだpsコマンドやらtopコマンドやら/procやらで消費メモリをいろいろ見た結果、仮想メモリは障らなければ恐るるに足らずということが分かったため、
一度gitea試してみることになり、今回の設置と相成りました。
docker-compose.ymlの分離
最近は少しメモリ関連の記事を書いていましたが、この記事はそれとは直接関係なく、以下のサーバー運用系の記事の続きになります。
前回最後に、「VALUE SERVER→ConoHa VPS移行作業で漏れた部分」をやっていくということにしてました。まずはgit関連のアプリ追加などを行いたいので、今回はWebとデータベースとアプリを個別に起動/停止できるよう、docker-compose.ymlファイルを分離してみます。
topコマンドでswap表示
前回は仮想メモリを調査し、使用されて始めて実メモリを確保することが明確になりました。そして純粋にメモリという意味では、psコマンドのVSZ(やSZ)はさして有用ではなく、RSSと出来ればswapが欲しいな…でもpsコマンドではswapは出せず、proc filesystemの力を借りていました。原始的ですね。
それならば…と今回はリアルタイムpsとも言うべきtopコマンドの出番です。bsdの呪いを解いたのも束の間、実はPOSIX標準の呪いにかかっていたpsコマンドを救うために、標準に縛られないニューヒーローtopコマンドにスポットライトを当てます。
障らぬ仮想メモリに祟りなし
前回はpsコマンドのSZについて調べました。
結局仮想メモリ含む全メモリという説明をしたのですが…じゃあSZが1GB使ってて、RSSが100MBだったら、残り900MBがスワップなのかというとそういうわけでもありません。スワップなんて全くされてない…なんてこともあります。今回はこのカラクリを説明しようと思います。
psコマンドのSZって何だ?
psコマンドは誰もがお世話になる便利コマンド。派生コマンドも多いし、リアルタイムに見たいからtop使ったり、その派生使ったり、アウトローな輩が/procを直に見るからpsコマンドいらんとか言ってたり、sar経由でグラフにならないと見ない御仁もいるかもしれないけど、とにかくその誰もが最初に学ぶ基本コマンドがpsなのだ。
今日はそのpsコマンドの出力、SZについての疑問に迫る。うん、誰も興味ないのは知ってる。