Skip to content

Instantly share code, notes, and snippets.

@potato2003
Last active May 17, 2019 14:41
Show Gist options
  • Save potato2003/b7efea964f3939e079cb4465811f0fb1 to your computer and use it in GitHub Desktop.
Save potato2003/b7efea964f3939e079cb4465811f0fb1 to your computer and use it in GitHub Desktop.
systemd のメモ

systemd

特徴

cgroups による管理

従来の Upstart/daemontools 等の init系プロセスでは、

  • double forking による自身を デーモン化するプロセス
  • Puma/Unicorn 等の Hot restart

init 系プロセスの管理から外れてしまう問題があった。
それによってプロセス監視などの管理がうまくいかない為、server-starter や unicornherder 等のツールを導入してこれらの問題を解決していた。 -- 【対策】

この問題に対して、systemd では、cgroups を利用して init プロセスをコントローラできている。

systemd を導入することで、【対策】 を無くし、簡易化できる利点がある。

Docker との利用時はこういった構成で簡易化できる

Docker
+ systemd
  + Puma / Unicorn
    + Rails App
Docker
+ systemd
  + Agent App (Double-Forking Deamon)

セキュリティ面は docker 化しているから、そんなに恩恵はない?

Jounal によるログ管理

管理するプロセスのログを 1つにまとめれる
運用をしないアプリエンジニアからすると、利点はわかりにくかったけど、
DevOps として考えると、見るべきログを統一化できるというのは、大変よい。
アプリ毎にログの見方が違う、複数に分散する。という問題を解決できる。

フィルタリング方法もある程度、統一できる 時間などは --since, --until オプションが用意されている

journalctl --since "2019-05-01" --until "2019-05-01 01:00"

todo

  • 並列化による効率化
  • 依存管理
  • プロセス停止機能
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment