Saminnet-Search Article Wiki Forum Piwigo SNS Cloud vtiger Sugar
Systemd update

  • Data-Articles
    • Wine-4 in CentOS-7 (48) Tue02,10:10am

      Wineis an open source and free application for Linux that enables users to run any windows based application on Unix/Linux like operating system. Wine team keeps releasing their versions in every two weeks. Finally, the Wine team proudly announced the stable release ofWine 4.0and made available for download in source and binary packages for various distributions such asLinux,WindowsandMac. Thi…

      Read More...

Systemd update

CentOS7でSystemdがメモリリークしていて使用率がジワジワと上昇していた
CentOS
ほとんどサービス動いてないサーバが急にメモリ使用率の警告出したので調べて見たら、1日に30MBくらい、1ヵ月で1GBくらいジワジワとSystemdがメモリリークしていたという話です。

事象
Systemdが異常にメモリを使っている。

$ ps aux | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.2 60.9 2327496 2207392 ? Ss 1月15 191:31 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S 1月15 0:00 [kthreadd]
...
何も動いていないのに2GBも何に使っているの?となった。

原因
結論から言うと、こちらのバグが原因です。 Bug 1308780 – systemd Using 4GB RAM after 18 Days of Uptime

今回のマシンも完全にひっかかっている。

$ yum info installed systemd
Loaded plugins: auto-update-debuginfo, fastestmirror
Installed Packages
Name : systemd
Arch : x86_64
Version : 219
Release : 19.el7_2.7
Size : 21 M
Repo : installed
From repo : updates
Summary : A System and Service Manager
URL : http://www.freedesktop.org/wiki/Software/systemd
License : LGPLv2+ and MIT and GPLv2+
Description : systemd is a system and service manager for Linux, compatible with
: SysV and LSB init scripts. systemd provides aggressive parallelization
: capabilities, uses socket and D-Bus activation for starting services,
: offers on-demand starting of daemons, keeps track of processes using
: Linux cgroups, supports snapshotting and restoring of the system
: state, maintains mount and automount points and implements an
: elaborate transactional dependency-based service control logic. It can
: work as a drop-in replacement for sysvinit.
暫定対応
上記の通り原因はメモリリークなのですが、以下のコマンドで不要メモリを解放できるので、一時しのぎはできます。

# systemctl daemon-reexec
このオプションの内容ですが以下の通り。内容読む限りでは大きな問題起こらなそうですが、できればサービス影響出ないタイミングで行いたいところです。

daemon-reexec
Reexecute the systemd manager. This will serialize the manager state,
reexecute the process and deserialize the state again. This command is of
little use except for debugging and package upgrades. Sometimes,
it might be helpful as a heavy-weight daemon-reload. While the daemon is being
reexecuted, all sockets systemd listening on behalf of user configuration will stay accessible.
恒久対応
こちらのコミットでBugFixがマージされています。


github.com

BugFixがあたったパッケージへアップデートをすることで対応できます。 アップデート対象になるバージョンを確認して、

$ yum info installed systemd
<略>---
利用可能なパッケージ
名前 : systemd
アーキテクチャー : x86_64
バージョン : 219
リリース : 30.el7_3.7
<略>---
影響等調べて問題無いならアップデート。これで恒久対応完了。

yum update systemd
追記
Sessionが大量に溜まりログオンなどの動作が不安定になる事象が発生するので、作業後はOSの再起動をすることをオススメします。

Add comment


Articles by Date

TweetTweet Share on LinkedInShare on LinkedIn Share on Google+Google+ Submit to RedditReddit Publish on WordPress WordPress Send emailSend email