前回までに、Linuxでシステムトレイにgtkを使ってC++/pythonでアイコン表示してみたのですが、
今回はqtを使ってC++でアイコン表示してみようと思います。
前回までに、Linuxでシステムトレイにgtkを使ってC++/pythonでアイコン表示してみたのですが、
今回はqtを使ってC++でアイコン表示してみようと思います。
前回、Linuxでシステムトレイにアイコン表示してみたのですがC++の割に22~44MBとメモリ消費が多かったので、
今回はpythonだとどうなのかと実験してみました。
Windowsなら簡単に出来そうだけど、LinuxではGUIを使う人が少ないのかそれほど多くの資料がありませんでした。LinuxのGUIは初めてなので、どんな方法があるのかもまだ分かりませんが、やってみたこと/調べたことを書き記そうかと思います。
C++はC++03までしか知らなくて、最近になってC++11以降を触っています。Ubuntu 20.04のgccは9.3なのでデフォルトだとC++14になりますが、今日はC++17で追加された std::variant
を使ってみました。
当サイトの記事内ではdockerの管理には現状docker-composeを利用しており、コンテナへの設定受け渡しには原則環境変数を使用しています。しかし環境変数によるパスワードなどの受け渡しは推奨されていないという記事を最近では結構見かけます。代替するものとして、今回はdocker secretsを使用する方法を少し書いておきます(と言ってもdocker-composeのfake secrets)。
nativeなlinuxが必要なときたまにwubiを使うことがあるのですが、今回はそのイメージをWindows VirtualBox上のLinuxから見る、という記事です。
前回はdockerコンテナの起動・停止を独立してできるようにしたので、
今回は新しいコンテナでgitを動かしてみます。
VALUE SERVERはレンタル共有サーバーであり、まともに動くのはPHPだけでした。バージョンは多少古いもののgitコマンドも元から入っており、この組み合わせでgitリポジトリをセルフホストするなら、gitコマンドを必要とし、PHPで動作するgitlistは最適だったと思います。
しかしConoHa VPSに移行しPHP縛りという呪いから開放された現在、同じgitlistで満足してていいのか?と自問した結果、以下の3択ではないかとの結論に至りました。
VPSがメモリ1Gでなければ迷わず3なのですが、その気になればプルリクエストが出来たり認証手段も豊富な高機能gitリポジトリセルフホスティングアプリはメモリ消費量が格段に多いのです。giteaはgoで書かれ、Raspberry Piでも動く軽量アプリというのが売りなのですが、それでも何もしてなくてもRSSが150MBほどなわけです。PHPや他のプロセスが50MB程度で顔デカイと思われてる中、その3倍の幅で鎮座しちゃってるのです。しかも仮想メモリVSZを見るとこの人1GBほど使ってて、もう無理!とほぼ諦めてGitWebを調べ始めてたのですが、、、こないだpsコマンドやらtopコマンドやら/procやらで消費メモリをいろいろ見た結果、仮想メモリは障らなければ恐るるに足らずということが分かったため、
一度gitea試してみることになり、今回の設置と相成りました。
最近は少しメモリ関連の記事を書いていましたが、この記事はそれとは直接関係なく、以下のサーバー運用系の記事の続きになります。
前回最後に、「VALUE SERVER→ConoHa VPS移行作業で漏れた部分」をやっていくということにしてました。まずはgit関連のアプリ追加などを行いたいので、今回はWebとデータベースとアプリを個別に起動/停止できるよう、docker-compose.ymlファイルを分離してみます。
前回は仮想メモリを調査し、使用されて始めて実メモリを確保することが明確になりました。そして純粋にメモリという意味では、psコマンドのVSZ(やSZ)はさして有用ではなく、RSSと出来ればswapが欲しいな…でもpsコマンドではswapは出せず、proc filesystemの力を借りていました。原始的ですね。
それならば…と今回はリアルタイムpsとも言うべきtopコマンドの出番です。bsdの呪いを解いたのも束の間、実はPOSIX標準の呪いにかかっていたpsコマンドを救うために、標準に縛られないニューヒーローtopコマンドにスポットライトを当てます。
前回はpsコマンドのSZについて調べました。
結局仮想メモリ含む全メモリという説明をしたのですが…じゃあSZが1GB使ってて、RSSが100MBだったら、残り900MBがスワップなのかというとそういうわけでもありません。スワップなんて全くされてない…なんてこともあります。今回はこのカラクリを説明しようと思います。