Help us understand the problem. What is going on with this article?

sadfコマンドの使い方

1 sadfコマンドとは?

sarで収集したデータをCSV,XML等のフォーマットに変換するコマンドです。
sarの使い方は、ここ(sarコマンドの使い方)に記事を作成しました。

2 環境

VMware Workstation 14 Playerのゲストマシン(1台)を使いました。
ゲストマシンのOS版数、CPU数、メモリ量は以下のとおりです。

OS版数
[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

[root@server ~]# uname -r
3.10.0-693.el7.x86_64
搭載しているCPU数
[root@server ~]# cat /proc/cpuinfo |grep processor
processor       : 0
processor       : 1
processor       : 2
processor       : 3
processor       : 4
processor       : 5
processor       : 6
processor       : 7
搭載しているメモリ量
[root@server ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3935         141        3648           8         146        3577
Swap:          1023           0        1023

3 インストール方法

[root@server ~]# yum -y install sysstat
[root@server ~]# sadf -V
sysstat バージョン 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)

4 事前準備

テスト用のファイルを作成します。
テスト用ファイルは、2秒間隔で情報を取得したものを使います。
適当なタイミングでCtrl + cを押下してsarコマンドを終了します。

sarファイルの準備
[root@server ~]# sar -o sar.data 2
Linux 3.10.0-693.el7.x86_64 (server)    2018年08月21日  _x86_64_        (8 CPU)

19時42分05秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
19時42分07秒     all      0.00      0.00      0.06      0.00      0.00     99.94
19時42分09秒     all      0.00      0.00      0.06      0.00      0.00     99.94
(中略)
19時43分15秒     all      0.00      0.00      0.12      0.00      0.00     99.88
19時43分17秒     all      0.00      0.00      0.00      0.00      0.00    100.00
19時43分19秒     all      0.00      0.00      0.06      0.00      0.00     99.94
採取したファイルの確認
[root@server ~]# ls -l sar.data
-rw-r--r--. 1 root root 865168  8月 21 19:43 sar.data

負荷等をかけるため、あらかじめツールをインストールしておきます。

stress-ngコマンドのインストール(CPU,メモリ負荷)
[root@server ~]# yum -y install epel-release
[root@server ~]# yum -y install stress-ng
[root@server ~]# stress-ng -V
stress-ng, version 0.07.29

5 オプション一覧

man(sadf)の抜粋
OPTIONS
       -C     Tell sadf to display comments present in file.

       -d     Print the contents of the data file in a format that can easily be ingested by  a  relational  database
              system.  The  output  consists of fields separated by a semicolon. Each record contains the hostname of
              the host where the file was created, the interval value (or -1 if not applicable), the timestamp  in  a
              form  easily  acceptable by most databases, and additional semicolon separated data fields as specified
              by sar_options command line options.  Note that timestamp output can be controlled by  options  -T,  -t
              and -U.

       -e [ hh:mm:ss ]
              Set the ending time of the report, given in local time. The default ending time is 18:00:00. Hours must
              be given in 24-hour format.

       -H     Display only the header of the report (when applicable). If no format  has  been  specified,  then  the
              header of the data file is displayed.

       -h     When  used  in  conjunction  with  option -d, all activities will be displayed horizontally on a single
              line.

       -j     Print the contents of the data file in JSON (JavaScript Object Notation) format. Timestamps can be con‐
              trolled by options -T and -t.

       -P { cpu [,...] | ALL }
              Tell  sadf  that  processor dependent statistics are to be reported only for the specified processor or
              processors. Specifying the ALL keyword reports statistics for each individual processor,  and  globally
              for all processors. Note that processor 0 is the first processor.

       -p     Print  the  contents of the data file in a format that can easily be handled by pattern processing com‐
              mands like awk.  The output consists of fields separated by a tab. Each record contains the hostname of
              the  host  where the file was created, the interval value (or -1 if not applicable), the timestamp, the
              device name (or - if not applicable), the field name and its value.  Note that timestamp output can  be
              controlled by options -T, -t and -U.

       -s [ hh:mm:ss ]
              Set  the  starting  time of the data (given in local time), causing the sadf command to extract records
              time-tagged at, or following, the time specified. The default starting time is 08:00:00.  Hours must be
              given in 24-hour format.

       -T     Display timestamp in local time instead of UTC (Coordinated Universal Time).

       -t     Display  timestamp in the original local time of the data file creator instead of UTC (Coordinated Uni‐
              versal Time).

       -U     Display timestamp (UTC - Coordinated Universal Time) in seconds from the epoch.

       -V     Print version number then exit.

       -x     Print the contents of the data file in XML format.  Timestamps can be controlled by options -T and  -t.
              The  corresponding  DTD  (Document  Type  Definition) and XML Schema are included in the sysstat source
              package. They are also available at http://pagesperso-orange.fr/sebastien.godard/download.html

6 時刻の表示方法

6.1 時刻をUTCで表示する方法(オプションなし)

[root@server ~]# sadf sar.data
server  2       2018-08-21 10:42:07 UTC all     %user   0.00
server  2       2018-08-21 10:42:07 UTC all     %nice   0.00
server  2       2018-08-21 10:42:07 UTC all     %system 0.06
server  2       2018-08-21 10:42:07 UTC all     %iowait 0.00
server  2       2018-08-21 10:42:07 UTC all     %steal  0.00
server  2       2018-08-21 10:42:07 UTC all     %idle   99.94
-以下、略-

6.2 時刻をローカル時刻で表示する方法(-T)

[root@server ~]# sadf -T sar.data
server  2       2018-08-21 19:42:07     all     %user   0.00
server  2       2018-08-21 19:42:07     all     %nice   0.00
server  2       2018-08-21 19:42:07     all     %system 0.06
server  2       2018-08-21 19:42:07     all     %iowait 0.00
server  2       2018-08-21 19:42:07     all     %steal  0.00
server  2       2018-08-21 19:42:07     all     %idle   99.94
-以下、略-

7 表示範囲を時刻で絞り込む方法(-s,-e)

ローカル時刻の19:42:00から30秒間の情報を出力してみます。
-sで表示開始時刻、-eで表示終了時刻を指定します。

[root@server ~]# sadf -T -s 19:42:00 -e 19:42:30 sar.data
server  2       2018-08-21 19:42:07     all     %user   0.00
server  2       2018-08-21 19:42:07     all     %nice   0.00
server  2       2018-08-21 19:42:07     all     %system 0.06
server  2       2018-08-21 19:42:07     all     %iowait 0.00
server  2       2018-08-21 19:42:07     all     %steal  0.00
server  2       2018-08-21 19:42:07     all     %idle   99.94
-中略-
server  2       2018-08-21 19:42:29     all     %user   0.00
server  2       2018-08-21 19:42:29     all     %nice   0.00
server  2       2018-08-21 19:42:29     all     %system 0.06
server  2       2018-08-21 19:42:29     all     %iowait 0.00
server  2       2018-08-21 19:42:29     all     %steal  0.00
server  2       2018-08-21 19:42:29     all     %idle   99.94

8 CPUの情報を表示する方法

8.1 全てのCPU情報を表示する方法(-P ALL)

[root@server ~]# sadf -P ALL sar.data 
server  2       2018-08-21 10:42:07 UTC all     %user   0.00
server  2       2018-08-21 10:42:07 UTC all     %nice   0.00
server  2       2018-08-21 10:42:07 UTC all     %system 0.06
server  2       2018-08-21 10:42:07 UTC all     %iowait 0.00
server  2       2018-08-21 10:42:07 UTC all     %steal  0.00
server  2       2018-08-21 10:42:07 UTC all     %idle   99.94
server  2       2018-08-21 10:42:07 UTC cpu0    %user   0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %nice   0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %system 0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %iowait 0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %steal  0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %idle   100.00
server  2       2018-08-21 10:42:07 UTC cpu1    %user   0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %nice   0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %system 0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %iowait 0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %steal  0.00
-以下、略-

8.2 特定のCPU情報を表示する方法(-P 0,1..)

CPU0の情報を表示した場合
[root@server ~]# sadf -P 0 sar.data
server  2       2018-08-21 10:42:07 UTC cpu0    %user   0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %nice   0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %system 0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %iowait 0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %steal  0.00
server  2       2018-08-21 10:42:07 UTC cpu0    %idle   100.00
server  2       2018-08-21 10:42:09 UTC cpu0    %user   0.00
server  2       2018-08-21 10:42:09 UTC cpu0    %nice   0.00
server  2       2018-08-21 10:42:09 UTC cpu0    %system 0.00
server  2       2018-08-21 10:42:09 UTC cpu0    %iowait 0.00
server  2       2018-08-21 10:42:09 UTC cpu0    %steal  0.00
server  2       2018-08-21 10:42:09 UTC cpu0    %idle   100.00
-以下、略-
CPU1,CPU3の情報を表示した場合
[root@server ~]# sadf -P 1,3 sar.data
server  2       2018-08-21 10:42:07 UTC cpu1    %user   0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %nice   0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %system 0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %iowait 0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %steal  0.00
server  2       2018-08-21 10:42:07 UTC cpu1    %idle   100.00
server  2       2018-08-21 10:42:07 UTC cpu3    %user   0.00
server  2       2018-08-21 10:42:07 UTC cpu3    %nice   0.00
server  2       2018-08-21 10:42:07 UTC cpu3    %system 0.00
server  2       2018-08-21 10:42:07 UTC cpu3    %iowait 0.00
server  2       2018-08-21 10:42:07 UTC cpu3    %steal  0.00
server  2       2018-08-21 10:42:07 UTC cpu3    %idle   100.00
-以下、略-

9 出力ファイルのフォーマットを指定する方法

9.1 JSONフォーマットで表示する方法(-j)

[root@server ~]# sadf -T -j sar.data
{"sysstat": {
        "sysdata-version": 2.15,
        "hosts": [
                {
                        "nodename": "server",
                        "sysname": "Linux",
                        "release": "3.10.0-693.el7.x86_64",
                        "machine": "x86_64",
                        "number-of-cpus": 8,
                        "file-date": "2018-08-21",
                        "statistics": [
                                {
                                        "timestamp": {"date": "2018-08-21", "time": "19:42:07", "utc": 0, "interval": 2},
                                        "cpu-load": [
                                                {"cpu": "all", "user": 0.00, "nice": 0.00, "system": 0.06, "iowait": 0.00, "steal": 0.00, "idle": 99.94}
                                        ]
                                },

                            -中略-
                                {
                                        "timestamp": {"date": "2018-08-21", "time": "19:43:20", "utc": 0, "interval": 1},
                                        "cpu-load": [
                                                {"cpu": "all", "user": 0.00, "nice": 0.00, "system": 0.11, "iowait": 0.00, "steal": 0.00, "idle": 99.89}
                                        ]
                                }
                        ],
                        "restarts": [
                        ]
                }
        ]
}}

9.2 XMLフォーマットで表示する方法(-x)

[root@server ~]# sadf -T -x sar.data
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sysstat PUBLIC "DTD v2.15 sysstat //EN"
"http://pagesperso-orange.fr/sebastien.godard/sysstat-2.15.dtd">
<sysstat>
        <sysdata-version>2.15</sysdata-version>
        <host nodename="server">
                <sysname>Linux</sysname>
                <release>3.10.0-693.el7.x86_64</release>
                <machine>x86_64</machine>
                <number-of-cpus>8</number-of-cpus>
                <file-date>2018-08-21</file-date>
                <statistics>
                        <timestamp date="2018-08-21" time="19:42:07" utc="0" interval="2">
                                <cpu-load>
                                        <cpu number="all" user="0.00" nice="0.00" system="0.06" iowait="0.00" steal="0.00" idle="99.94"/>
                                </cpu-load>
                        </timestamp>

                       -中略-

                        <timestamp date="2018-08-21" time="19:43:20" utc="0" interval="1">
                                <cpu-load>
                                        <cpu number="all" user="0.00" nice="0.00" system="0.11" iowait="0.00" steal="0.00" idle="99.89"/>
                                </cpu-load>
                        </timestamp>
                </statistics>
                <restarts>
                </restarts>
        </host>
</sysstat>

9.3 セミコロンで区切って表示する方法(-d)

全CPUを表示した場合
[root@server ~]# sadf -T -d sar.data
# hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle
server;2;2018-08-21 19:42:07;-1;0.00;0.00;0.06;0.00;0.00;99.94
server;2;2018-08-21 19:42:09;-1;0.00;0.00;0.06;0.00;0.00;99.94
server;2;2018-08-21 19:42:11;-1;0.06;0.00;0.06;0.00;0.00;99.87
server;2;2018-08-21 19:42:13;-1;0.00;0.00;0.06;0.00;0.00;99.94
server;2;2018-08-21 19:42:15;-1;0.00;0.00;0.06;0.00;0.00;99.94
server;2;2018-08-21 19:42:17;-1;0.00;0.00;0.00;0.00;0.00;100.00
-以下、略-

ここでは、CPU3の情報を表示してみます。

特定のCPUを表示した場合
[root@server ~]# sadf -T -P 3 -d sar.data
# hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle
server;2;2018-08-21 19:42:07;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:09;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:11;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:13;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:15;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:17;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:19;3;0.00;0.00;0.00;0.00;0.00;100.00
server;2;2018-08-21 19:42:21;3;0.00;0.00;0.00;0.00;0.00;100.00
-以下、略-

10 sarコマンドのオプションを使う方法(-- sarのオプション)

sarコマンドのオプションを使うには、--に続けて、sarコマンドのオプションを指定します。
このオプションを使うことで、CPU以外の情報を表示することができるようになります。
なお、sarコマンドのオプションの使い方については、こちら(sarコマンドの使い方)を参照ください。

10.1 メモリ使用量に関する情報を表示する方法(-- -r)

[root@server ~]# sadf -T -- -r sar.data
server  2       2018-08-21 19:42:07     -       kbmemfree       3489512
server  2       2018-08-21 19:42:07     -       kbmemused       540660
server  2       2018-08-21 19:42:07     -       %memused        13.42
server  2       2018-08-21 19:42:07     -       kbbuffers       2076
server  2       2018-08-21 19:42:07     -       kbcached        307960
server  2       2018-08-21 19:42:07     -       kbcommit        227784
server  2       2018-08-21 19:42:07     -       %commit 4.49
server  2       2018-08-21 19:42:07     -       kbactive        292312
server  2       2018-08-21 19:42:07     -       kbinact 86364
server  2       2018-08-21 19:42:07     -       kbdirty 0
server  2       2018-08-21 19:42:09     -       kbmemfree       3489372
server  2       2018-08-21 19:42:09     -       kbmemused       540800
server  2       2018-08-21 19:42:09     -       %memused        13.42
server  2       2018-08-21 19:42:09     -       kbbuffers       2076
server  2       2018-08-21 19:42:09     -       kbcached        308008
server  2       2018-08-21 19:42:09     -       kbcommit        227784
server  2       2018-08-21 19:42:09     -       %commit 4.49
server  2       2018-08-21 19:42:09     -       kbactive        292536
server  2       2018-08-21 19:42:09     -       kbinact 86376
server  2       2018-08-21 19:42:09     -       kbdirty 48
-以下、略-

10.2 メモリページに関する情報を表示する方法(-- -R)

[root@server ~]# sadf -T -- -R sar.data
server  2       2018-08-21 19:42:07     -       frmpg/s 0.00
server  2       2018-08-21 19:42:07     -       bufpg/s 0.00
server  2       2018-08-21 19:42:07     -       campg/s 0.00
server  2       2018-08-21 19:42:09     -       frmpg/s -17.50
server  2       2018-08-21 19:42:09     -       bufpg/s 0.00
server  2       2018-08-21 19:42:09     -       campg/s 6.00
server  2       2018-08-21 19:42:11     -       frmpg/s -15.50
server  2       2018-08-21 19:42:11     -       bufpg/s 0.00
server  2       2018-08-21 19:42:11     -       campg/s 2.50
-以下、略-

10.3 ブロックデバイスに関する情報を表示する方法(-- -d)

[root@server ~]# sadf -T -- -d sar.data
server  2       2018-08-21 19:42:07     dev8-0  tps     0.00
server  2       2018-08-21 19:42:07     dev8-0  rd_sec/s        0.00
server  2       2018-08-21 19:42:07     dev8-0  wr_sec/s        0.00
server  2       2018-08-21 19:42:07     dev8-0  avgrq-sz        0.00
server  2       2018-08-21 19:42:07     dev8-0  avgqu-sz        0.00
server  2       2018-08-21 19:42:07     dev8-0  await   0.00
server  2       2018-08-21 19:42:07     dev8-0  svctm   0.00
server  2       2018-08-21 19:42:07     dev8-0  %util   0.00
server  2       2018-08-21 19:42:07     dev11-0 tps     0.00
server  2       2018-08-21 19:42:07     dev11-0 rd_sec/s        0.00
server  2       2018-08-21 19:42:07     dev11-0 wr_sec/s        0.00
server  2       2018-08-21 19:42:07     dev11-0 avgrq-sz        0.00
server  2       2018-08-21 19:42:07     dev11-0 avgqu-sz        0.00
server  2       2018-08-21 19:42:07     dev11-0 await   0.00
server  2       2018-08-21 19:42:07     dev11-0 svctm   0.00
server  2       2018-08-21 19:42:07     dev11-0 %util   0.00
-以下、略-

10.4 パケット送受信に関する情報を表示する方法(-- -n DEV)

[root@server ~]# sadf -T -- -n DEV sar.data
server  2       2018-08-21 19:42:07     eth0    rxpck/s 0.00
server  2       2018-08-21 19:42:07     eth0    txpck/s 0.00
server  2       2018-08-21 19:42:07     eth0    rxkB/s  0.00
server  2       2018-08-21 19:42:07     eth0    txkB/s  0.00
server  2       2018-08-21 19:42:07     eth0    rxcmp/s 0.00
server  2       2018-08-21 19:42:07     eth0    txcmp/s 0.00
server  2       2018-08-21 19:42:07     eth0    rxmcst/s        0.00
server  2       2018-08-21 19:42:07     eth1    rxpck/s 0.00
server  2       2018-08-21 19:42:07     eth1    txpck/s 0.00
server  2       2018-08-21 19:42:07     eth1    rxkB/s  0.00
server  2       2018-08-21 19:42:07     eth1    txkB/s  0.00
server  2       2018-08-21 19:42:07     eth1    rxcmp/s 0.00
server  2       2018-08-21 19:42:07     eth1    txcmp/s 0.00
server  2       2018-08-21 19:42:07     eth1    rxmcst/s        0.00
server  2       2018-08-21 19:42:07     lo      rxpck/s 0.00
server  2       2018-08-21 19:42:07     lo      txpck/s 0.00
server  2       2018-08-21 19:42:07     lo      rxkB/s  0.00
server  2       2018-08-21 19:42:07     lo      txkB/s  0.00
server  2       2018-08-21 19:42:07     lo      rxcmp/s 0.00
server  2       2018-08-21 19:42:07     lo      txcmp/s 0.00
server  2       2018-08-21 19:42:07     lo      rxmcst/s        0.00
server  2       2018-08-21 19:42:09     eth0    rxpck/s 0.50
server  2       2018-08-21 19:42:09     eth0    txpck/s 0.50
server  2       2018-08-21 19:42:09     eth0    rxkB/s  0.03
server  2       2018-08-21 19:42:09     eth0    txkB/s  0.13
server  2       2018-08-21 19:42:09     eth0    rxcmp/s 0.00
server  2       2018-08-21 19:42:09     eth0    txcmp/s 0.00
server  2       2018-08-21 19:42:09     eth0    rxmcst/s        0.00
server  2       2018-08-21 19:42:09     eth1    rxpck/s 0.00
server  2       2018-08-21 19:42:09     eth1    txpck/s 0.00
server  2       2018-08-21 19:42:09     eth1    rxkB/s  0.00
server  2       2018-08-21 19:42:09     eth1    txkB/s  0.00
server  2       2018-08-21 19:42:09     eth1    rxcmp/s 0.00
server  2       2018-08-21 19:42:09     eth1    txcmp/s 0.00
server  2       2018-08-21 19:42:09     eth1    rxmcst/s        0.00
server  2       2018-08-21 19:42:09     lo      rxpck/s 0.00
server  2       2018-08-21 19:42:09     lo      txpck/s 0.00
server  2       2018-08-21 19:42:09     lo      rxkB/s  0.00
server  2       2018-08-21 19:42:09     lo      txkB/s  0.00
server  2       2018-08-21 19:42:09     lo      rxcmp/s 0.00
server  2       2018-08-21 19:42:09     lo      txcmp/s 0.00
server  2       2018-08-21 19:42:09     lo      rxmcst/s        0.00
-以下、略-

10.5 TCPに関する情報を表示する方法(-- -n TCP)

[root@server ~]# sadf -T -- -n TCP sar.data
server  2       2018-08-21 19:42:07     -       active/s        0.00
server  2       2018-08-21 19:42:07     -       passive/s       0.00
server  2       2018-08-21 19:42:07     -       iseg/s  0.00
server  2       2018-08-21 19:42:07     -       oseg/s  0.00
server  2       2018-08-21 19:42:09     -       active/s        0.00
server  2       2018-08-21 19:42:09     -       passive/s       0.00
server  2       2018-08-21 19:42:09     -       iseg/s  0.50
server  2       2018-08-21 19:42:09     -       oseg/s  0.50
-以下、略-

10.6 IPに関する情報を表示する方法(-- -n IP)

[root@server ~]# sadf -T -- -n IP sar.data
server  2       2018-08-21 19:42:07     -       irec/s  0.00
server  2       2018-08-21 19:42:07     -       fwddgm/s        0.00
server  2       2018-08-21 19:42:07     -       idel/s  0.00
server  2       2018-08-21 19:42:07     -       orq/s   0.00
server  2       2018-08-21 19:42:07     -       asmrq/s 0.00
server  2       2018-08-21 19:42:07     -       asmok/s 0.00
server  2       2018-08-21 19:42:07     -       fragok/s        0.00
server  2       2018-08-21 19:42:07     -       fragcrt/s       0.00
-以下、略-

Z 参考情報

sysstat - System performance tools for the Linux operating system
sysstat
sar で収集したリソース使用情報が sadf コマンドで TSV として出力できる
sadfコマンドを使ってみる

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away