とあるプログラマの日常

技術ネタから音楽ネタ、お絵描きなどなど、趣味丸出しのブログです。

systemdでのサービス起動シーケンスの確認方法(systemd-analyze)

そんなわけで、久しぶりのブログ更新(∩´∀`)∩

最近、serviseファイルを作ってオリジナルサービスを作ることになって、systemdで起動されるサービスの起動順序を調べる必要が出てきました。
で、色々調べていたら、systemd-analyzeというコマンドが使えることが分かったので、ちょっと使ってみました。
このsystemd-analyzeコマンドは、systemdで起動する各サービスの起動に掛かった時間などを調べて、OS起動速度のボトルネック解析に使うものです。
で、このコマンド、起動シーケンスやサービスの起動時間を、SVG形式のガントチャート(?)イメージで出力することができます。

以下のように、plot を指定して実行すると、SVG形式のテキストを出力してくれるので、その出力を適当なファイルに保存します。

$ systemd-analyze plot > systemd_plot.svg

保存したSVGファイルをブラウザで表示してみると、サービスの起動順序と時間が一目瞭然で確認できるチャートとして表示できます。

f:id:PANTOMAIMU:20170802204608p:plain

チャート全体のイメージはこんな感じ。
f:id:PANTOMAIMU:20170802204522j:plain


以下のイメージは、ネットワークサービスの起動完了後に実行されるサービス部分を拡大したものです。
f:id:PANTOMAIMU:20170802204549p:plain
赤い色の部分が、起動に掛かった時間を示しています。

試しにnetwork.targetの起動後に起動している、postfixのserviceファイルを確認してみると、以下のようにAfterにnetwork.targetが定義されていました。

[Unit]
Description=Postfix Mail Transport Agent
After=syslog.target network.target
Conflicts=sendmail.service exim.service

[Service]
Type=forking
PIDFile=/var/spool/postfix/pid/master.pid
EnvironmentFile=-/etc/sysconfig/network
ExecStartPre=-/usr/libexec/postfix/aliasesdb
ExecStartPre=-/usr/libexec/postfix/chroot-update
ExecStart=/usr/sbin/postfix start
ExecReload=/usr/sbin/postfix reload
ExecStop=/usr/sbin/postfix stop

[Install]
WantedBy=multi-user.target


こんな感じで、systemdで制御されているサービスの起動順序をお手軽に(?)確認することができました(`・ω・´)

ちょっと思うところがあってブログ再開(予定)

技術ネタメインのブログの方を含めると、足掛け4年近く封印していたブログですが、復活させようと思います。
某所から若干横やりが入るかもしれませんが、知らないw

自分の人生、自分のやりたいとおりにやることに決めたw

2016年になってしまいましたw

ご無沙汰しております...orz
ほぼ一ヶ月半ぶりの日記です....orz
仕事が忙しかったり色々あって、完全に放置してました....orz

年末は風邪をひいて寝たきりで、12/31あたりから復活...
現在に至ります ぐぬぬ...

一応体調も戻って、年賀CG描きました :-)
f:id:PANTOMAIMU:20160102034413j:plain

申年は干支の動物と掛け合わせるのが難しく、いつも干支と関係ないキャラにしていたのですが、諦めてサル耳少女を初めて描いてみました...

さて今年は、人手不足もあり、お仕事がハードになりそうです....orz
趣味の方は、お絵描きより音楽方面に移っているので、お絵描きペースも落ちそうです....orz

それでは、今年もよろしくお願いします ><

Liberty版Ironicと格闘w

そんなわけで、今会社から帰ってきましたw

昨日に引き続き、朝からLiberty版のIronicを使ってベアメタル環境を作っていたのですが、なんとか動かせるようになる目途が立ったので、今日のお仕事終了です....

OpenSatckサイトの手順を参考にやっていたけど、イメージファイルの指定方法が変わっていたりしていて悪戦苦闘w

結局Ironicのソースコードを読んで解決ですww

Kiloの頃はイメージ指定をnova boot時に指定するようになっていたのに、LibertyではIronicのノード登録時に指定するようになっていやがりましたヽ(#゚Д゚)ノ
多分、Novaとの依存関係を弱くするのが目的のようにも見えるけど、nova boot時に指定するイメージとの関係はどうなるんだ?と、なんとも曖昧な修正をしてくれていました....

まぁ、今回の悪戦苦闘のおかげで、Ironicの仕組みが少しずつ見えてきたのが収穫といえば収穫だけど、Pythonコードを読み解く力がないと、正直新しいOpenStackをまともに使うことができないんだなぁ....って、つくづく思う一日でした...

さて、明日はゴロゴロするか、Cubase立ち上げて遊んでいよう....

おぷ☆すたと格闘する日々

精神安定剤を処方してもらったり、会社で古い付き合いの人に愚痴というか悩み事を吐き出して、平常運転に戻っている今日この頃...
お仕事の方は、OpenStackのIronicと格闘したりする日々だったりします...

最初はKiloでIronic使ってベアメタル環境を構築していたけど、どうもKiloの頃に出ているIronicとKeystoneとNovaが、APIのバージョンのずれとかが原因と思われる問題が起きてしまって、結局Libertyで再構築してやり直すことに...orz
RDO版を使っているのが悪いのか、元々なのかわからないが、色々後手後手に回っている感じのIronic....

まぁ、ベアメタルのノードをテナントネットワークに接続できない段階で、完成しているとは言えないよなぁ...
NeutronのDHCPを使ってPXE Bootを実現するという、元々の用途と異なるものを使って、とりあえず実現しました...って感じが、もうねw
Icehouceの頃に、無理やり正式プロダクトに昇格した(と思われる)HeatとCeilometerと同じ臭いがしていて、苦労せずに使えるようになるのはまだまだ先のようです...orz

そもそも課金用に作っていたCeilometerを、オーケストレーションのトリガーとなる障害検知に使おうとしている時点で、本気の稼働監視システム舐めてるよなぁ....って...

Neutronで用意している仮想アプライアンスも、小規模にしか対応できないレベルだし...

と、色々思うところはあるけれど、結局使えるコンポーネントを組み合わせて使うしかないんだなぁ....と、最近思い始めてきたわけですw

腹痛でグルグル

昨日あたりから、腹痛と軽い吐き気に悩まされつつ、今日はお仕事...

案の定軽い吐き気で、お昼を食べることもできないままお仕事....
さすがに身体が持たないなぁ...ってのと、Ironicの問題をとりあえずクリアできたので、定時で帰宅です...(´・ω・`)

下痢とか熱がないので、多分ストレスで消化器やられてる感じです...

鬱が治ったあとも、心療内科でカウンセリング受けているおかげで、なんとか再発せずに済んでるよなぁ....

癌治療後の定期検診と同じで、鬱も再発するからカウンセリングを受けることをお薦めするよ...

雨が降って引きこもり

あぁ~
昨日は会社でKilo+Ironicと格闘して敗れる....orz
なぜかIronicのクライアントコマンドで認証できない...ぐぬぬ...

そんな傷心のなか、今日は外にでも出て気晴らしをしようと思っていたらこの雨です...orz

そんなわけで、今日は引きこもり
ちょっとだけ、今までと少しだけ毛色の違う曲を実験的に作ってみる...
だいたい2時間ぐらいw

www.youtube.com

ジャンルは何になるのかは不明...


てなわけで、あと数時間の日曜日をのんびり過ごすことにしますんω