Page Scrolling Vertical Scrolling Horizontal Scrolling Wrapped Scrolling
最近 gitlab omnibus などの環境を作っていて、GitLab CE の role でバックアップ処理を定期実行するのに crontab ではなく systemd の timer を使ってみました。 利点 systemd 管理下で統一的に扱えるので、覚えれば楽 ログも journald で統一されるので cron だといちいちメールが飛ぶと鬱陶しいような粒度でも簡単にログに残せる 環境変数なども含めた環境が本番と同じ状態ですぐに実行を試しやすい systemd 依存の機能が使える (後述の例では After と Requires) などが利点に感じました。 欠点 情報が cron (crontab) に比べてまだ少ないので、何かあったときに調べにくい systemd に大きく依存してしまう などが欠点に感じました。 確認環境 Ubuntu 16.04.2 LTS (xenial)
数年前に、こういう記事「ulimitが効かない不安を無くす設定」を書きました。しかし、ディストリビューションのバージョンが上がり、デーモン管理が systemd に変わったことで、インターネットのゴミとなりつつあります。 そのため今回は、その次世代バージョン的な内容ということで、systemd の場合はこうしておけば見えない敵と闘うこともなくなるはずです、というものになります。例によって、抑えきれていないパターンがあったら御免なさいです、押忍。 limits設定で目指す所 復習になりますが、limits の設定で困るのはだいたいこういうパターンでしょう。 作業中ユーザーのシェルのlimits設定が思い通りにならない コンソール/SSHログインしてデーモンを再起動したら、limits設定が戻っていた su/sudoを使ってデーモンを再起動したら同上 デーモンをシステムに自動再起動させたら同上
コンニチーーーハ、千葉です。 Dockerコンテナを実行するときに指定できるプロセスは、基本的には1つとなります。 そのため複数プロセスを起動させるためには、別途プロセス管理ツールが必要です。公式ではSupervisorを使って複数プロセスを起動する方法が記載されています。 今回は、SupervisorではなくSystemdを使ってプロセス管理を行ってみました。 例として、sshdとnginxを起動するコンテナを作成します。(sshしたら負け!という議論はここではしません。) systemdとは? Fedora 15やCentOS 7、Red Hat Enterprise Linux 7から採用されたされました。systemdの詳細や利用方法については、こちらが分かりやすいのでリンクを貼っておきます。 systemd超入門 はじめてのsystemdサービス管理ガイド コンテナイメージの作成
systemd というと unit ファイルを書いてデーモンを起動して、というイメージが強いかもしれないけど、systemd-run を使うと単発のコマンドを systemd の管理下で実行できる。 こうすることで、CPUQuota=50% とか MemoryLimit=10M とか BlockIOWeight=10 のようにリソースを制限でき、しかも実行中に変更することもできる。 たとえば http://hb.matsumoto-r.jp/entry/2015/12/02/133448 にあるような CPU 使用率を制限しながら yes を実行する例だと、 % sudo systemd-run --scope --uid=eagletmt -p CPUQuota=10% yes > /dev/null Running scope as unit run-rcab5dc0a5f8e4620
(訳注:7/24、いただいた翻訳フィードバックを元に記事を修正いたしました。) (訳注2:8/4、いただいた翻訳フィードバックを元に記事を再修正いたしました。) この2010年代にLinuxシステムの管理者をしていれば、systemdに関して何かしら思うところがあるでしょう。そして私は管理者たちの意見が両極端に分かれていることに驚きました。ほとんどの人(少なくとも意見を表明している人達)はsystemdが「大好き」か「大嫌い」かのどちらかのようです。私の場合、systemdをきっかけに昨年OpenBSDを使うことになったのですが、これを話したことで私がsystemdを「大嫌い」だと思われたようです。でも、それは違います。 本当は、systemd自体は私がOpenBSDに移った理由のほんの一部にすぎません。しかし、この経験によって2つの重要な点に気付きました。まず、最近のLinuxの設計の問
これはとある勉強会用の資料です。スライド作るのが面倒臭くなったのでブログにすることにしました。 Systemdとは Systemdは、Linuxの起動処理やシステム管理を行う仕組みです。 Linuxの起動処理 Linuxの起動はざっくりと以下の4段階によって行われます。 電源投入によりBIOSが起動する。 BIOSからブートローダーが呼び出される。 ブートローダーがLinuxカーネルを起動する。 Linuxカーネルがinitプロセス(PID 1)を起動する。 このinitプロセスが、Linuxの起動処理を司ります。古くから使われていたのがSysvinitで、Sysvinitの代替えとして近年Ubuntuなどで採用されていたのがUpstartです。そしてFedora 15やCentOS 7、Red Hat Enterprise Linux 7で採用されたのがSystemdです。 System
「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。 http://www.oreilly.co.jp/books/9784873114569/
前回、systemdの基本操作を説明した。今回は、Unitの設定ファイルの書き方を説明していこう。 Unitの設定ファイルは、[Unit]、[Service]、[Install]などのセクションに分かれている。[Unit]セクションには、依存関係や順序関係など、Unitの種類に依存しない項目を記載する。[Service]セクションは、serviceタイプのUnitに固有の設定項目になる。前回触れたように、[Install]セクションには、Unitの自動起動を有効化する際に、依存関係を設定するUnitを指定する。 Unitの設定ファイルを変更した際は、次のコマンドで設定変更をsystemdに認識させる必要がある。
Dockerでコンテナを起動する際に、次のようにcpu-sharesとmemory-limitを指定することができます。 # docker run -c 256 -m 512m hogehogeこれは内部的にはcgroupsを使っていますが、RHEL7のDockerでは、systemdと連携してcgroupsの制御を行っています。この辺りの解説です。cgroupsそのもの説明は下記を参照下さい。 ・Control Groups (cgroups) コンテナから生成されるUnit まず、テスト用にContOS6のコンテナを起動して、中でtopコマンドでも実行しておきます。 # docker run -it -c 256 -m 512m centos /bin/bash bash-4.1# top別の端末からログインして、コンテナIDを確認します。 # docker ps CONTAINER
こんにちは、運用部 アプリ運用グループの清水です。モンスト仲間募集中です。 以前、Fedora 8からFedora 17への移行のお話を書きました。Fedora 17ではsystemdがデフォルトで使われています。そのsystemdを本番環境で運用して1年以上が経ち、様々な経験をしてきました。systemdの環境で知っておくと役に立つと思われることについていくつか紹介したいと思います。 まずは、systemdの概要について簡単に紹介します。 systemdの概要と歴史 systemdは、従来のSysVinit/Upstartに代わるもので、Linuxサーバの起動時に初期設定やサービス起動をおこなうことにとどまらず、プロセスやリソースなど様々な管理をおこなうデーモンです。 Fedora 14の頃(2010年11月リリース)にTechnology Previewとして提供され、Fedora 1
斎藤です。こんにちは。 RedHat Enterprise Linux 7(RHEL7)リリースの足音が聞こえる今日この頃ですが、皆様いかがでしょうか。予習として、Fedora 19を利用されている方もいらっしゃるかと思います。 その中で、大きな変化の1つとして、 systemd(※1) の採用があります。systemdは、SysVinitやUpstartに変わる、プロセス管理の仕組みです。そうです、起動スクリプトの書き方や、プロセスの確認方法が大きく変わる事になるのです!そうなれば、構築や運用に関わる知識や手順を覚え直す必要が出てきます。 しかし、systemdに関する資料は、それほど多くありません。そこで、簡単ですが記事執筆時点(2013-10-24)での情報源をまとめてみました。検証の際の情報収集時、お役に立てば幸いです。 ※私が社内Wikiにまとめた情報をBlog用に整理し、公開し
この連載では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明します。今後出てくる予定のRHEL7での実装とは異なる部分があるかも知れませんが、その点はご了承ください。 今回は、serviceタイプのUnitについて、設定ファイルの書き方を説明します。 Unit設定ファイル 参考資料 ・systemd.unitのmanページ:設定ファイルの一般的な説明 ・systemd.serviceのmanページ:serviceタイプUnitの設定オプションの説明 「Systemd入門(1) - Unitの概念を理解する」で説明したように、各Unitの設定ファイルは、/usr/lib/systemd/system/以下と/etc/systemd/system/以下にあります。両方のディレクトリに同名の設定ファイルがある場合は、後者(/etc/systemd/sys
この連載では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明します。今後出てくる予定のRHEL7での実装とは異なる部分があるかも知れませんが、その点はご了承ください。 今回は、表題の小ネタを2つお届けします。 cgroups systemdの管理下では、すべてのプロセスについて、cgroupsによる分類が行われます。cgroupsでは、グループに階層構造を持たせることができますが、systemdは「systemグループ」と「userグループ」を用意した上で、その下にサブグループを作成していきます。 グループ 説明 system systemdから起動するserviceについて、この下に該当service用のサブグループを作成します。 user この下にユーザアカウントごとのサブグループを作成します。その下には、さらに、ログイン端末ごとのサブグループ
この連載では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明します。今後出てくる予定のRHEL7での実装とは異なる部分があるかも知れませんが、その点はご了承ください。 前回は、systemdの基本概念となるUnitの説明をしました。今回は、日々のオペレーションで必要となる、serviceの操作方法をまとめます。旧来のchkconfigコマンド、serviceコマンドに相当する部分ですね。 サービスの確認 現在稼働中のサービス一覧 # systemctl list-units --type=service UNIT LOAD ACTIVE SUB JOB DESCRIPTION auditd.service loaded active running Security Auditing Service crond.service loaded act
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く