mac osx maverics systemstats 暴走

夜の0:30くらいになると、systemstatsというプロセスが暴走する現象の対応メモ。
(Macbook Pro Retina 13, late 2012, maverics)
これは、SMCのリセットで解消される。手順は次の通り。
参考:Mac の SMC (システム管理コントローラ) をリセットする方法 - Apple サポート

  1. コンピュータを終了します。
  2. MagSafe 電源アダプタを電源に接続し、まだ接続されていない場合は Mac に接続します。
  3. 内蔵キーボードの左側にある「shift-control-option」キーを押しながら電源ボタンを押します。
  4. すべてのキーと電源ボタンを同時に放します。
  5. 電源ボタンを押してコンピュータを起動します。

はい、ちゅんちゅん。

2014年5月19日追記1

全然なおってねーー。
https://dl.dropboxusercontent.com/u/11139747/diary_img/2014-05-19%2020.46.41.png

2014年5月19日追記2

ターミナルを開いて、次のコマンドを実行。

  1. sudo launchctl stop com.apple.systemstatsd
  2. sudo launchctl stop com.apple.systemstats.periodic (そんなもん動いてないと言われるかも)
  3. sudo launchctl stop com.apple.systemstats.analysis
  4. mkdir /Users/Shared/oldsysstats
  5. sudo mv /private/var/db/systemstats/* /Users/Shared/oldsysstats
  6. sudo reboot

これで様子見する。問題ないことを確認後、/Users/Shared/oldsysstatsを削除予定
参考:systemstats using high CPU after upgrade to Mav... | Communities

2014年5月21日追記

なおらん。

2014年5月23日追記

腹がたったので本気出して解消を試みた。結論から言うと5月19日のやり方で解消するが、せっかく調べたので下記に記録しておく。

systemstatsについて

OSX Mavericksから実装された、アクティビティモニタCUI版。ターミナルからsystemstatsってやると、下記のような情報が普通は表示される。ただし、件の現象が発生している場合は表示されない。(自分の環境の場合、-B currentオプションがついていれば表示された。)

mbp00-2:/ hk$ sudo systemstats -B current
Password:

Summary
 =======
      System Version:	13D65
          Total Time:	00:59:00

Usage
 =====
           Wake Time:	00:59:00
         User Active:	00:59:00
           User Idle:	00:00:00
      Dark Wake Time:	00:00:00
          Sleep Time:	00:00:00
        Standby Time:	00:00:00


CPU Summary
 ===========
      Avg. Frequency:	2.425 GHz
      Interrupt Rate:	1121 Hz
         C-State Res:	75.1%   C2 1%   C6 0%   C7 74%
         User Active:	75.1%


I/O Summary
===========
          Disk Reads:	     33663
         Disk Writes:	     41582
          Bytes Read:	    1207.5 MB (     349.4 KB/s)
       Bytes Written:	     817.0 MB (     236.4 KB/s)

        Packets Sent:	    125996
    Packets Received:	     72462
          Bytes Sent:	      98.9 MB (      28.6 KB/s)
      Bytes Received:	      61.1 MB (      17.7 KB/s)

Top I/O Activity
================
                Time:	2014-05-23 21:30:16 to 2014-05-23 21:40:16 (00:10:00)
          Disk Reads:	     26619
         Disk Writes:	     12529
          Bytes Read:	    1134.3 MB (       1.9 MB/s)
       Bytes Written:	     291.7 MB (     498.6 KB/s)

        Packets Sent:	      7333
    Packets Received:	      6854
          Bytes Sent:	     996.6 KB (       1.7 KB/s)
      Bytes Received:	       3.7 MB (       6.3 KB/s)

                Time:	2014-05-23 22:00:16 to 2014-05-23 22:10:16 (00:10:00)
          Disk Reads:	      4606
         Disk Writes:	     19678
          Bytes Read:	      27.3 MB (      46.7 KB/s)
       Bytes Written:	     334.3 MB (     570.5 KB/s)

        Packets Sent:	    107844
    Packets Received:	     55686
          Bytes Sent:	      96.5 MB (     164.7 KB/s)
      Bytes Received:	      52.7 MB (      89.9 KB/s)

                Time:	2014-05-23 21:40:16 to 2014-05-23 21:50:16 (00:09:59)
          Disk Reads:	      1907
         Disk Writes:	      3623
          Bytes Read:	      35.6 MB (      60.9 KB/s)
       Bytes Written:	      70.0 MB (     119.7 KB/s)

        Packets Sent:	      4331
    Packets Received:	      4001
          Bytes Sent:	     614.5 KB (       1.0 KB/s)
      Bytes Received:	       2.3 MB (       3.9 KB/s)


Memory Summary
==============
     Swap Dev is SSD:	Yes
               Total:	    8192.0 MB
                Free:	    2582.8 MB
               Wired:	     895.0 MB
          Compressor:	       0.0 KB
          Compressed:	       0.0 KB
            Internal:	    2879.5 MB
            External:	    1796.8 MB
           Purgeable:	     488.5 MB

     IOAccelResident:	     673.1 MB
        IOAccelWired:	     105.0 MB
        IOAccelDirty:	     672.4 MB
       IOAccelCached:	       0.0 KB
    IOAccelPurgeable:	     192.7 MB

              Faults:	   5097184
              Purges:	         0 (       0.0 KB/s)
          Zero-fills:	   4545841 (       5.0 MB/s)
       Reactivations:	         4 (       0.0 KB/s)
            Page-ins:	    155925 (     176.2 KB/s)
           Page-outs:	         0 (       0.0 KB/s)
      Decompressions:	         0 (       0.0 KB/s)
        Compressions:	         0 (       0.0 KB/s)
            Swap-ins:	         0 (       0.0 KB/s)
           Swap-outs:	         0 (       0.0 KB/s)

Top Memory Activity
===================
                Time:	2014-05-23 21:40:16 to 2014-05-23 21:50:16 (00:09:59)
                Free:	    3348.7 MB
               Wired:	     895.8 MB
          Compressor:	       0.0 KB
          Compressed:	       0.0 KB
            Internal:	    2212.3 MB
            External:	    1733.2 MB
           Purgeable:	     298.9 MB

     IOAccelResident:	     518.3 MB
        IOAccelWired:	     125.8 MB
        IOAccelDirty:	     518.3 MB
       IOAccelCached:	       0.0 KB
    IOAccelPurgeable:	     154.8 MB

              Faults:	   1197094
              Purges:	         0 (       0.0 KB/s)
          Zero-fills:	   1162263 (       7.6 MB/s)
       Reactivations:	         0 (       0.0 KB/s)
            Page-ins:	     51914 (     346.7 KB/s)
           Page-outs:	         0 (       0.0 KB/s)
      Decompressions:	         0 (       0.0 KB/s)
        Compressions:	         0 (       0.0 KB/s)
            Swap-ins:	         0 (       0.0 KB/s)
           Swap-outs:	         0 (       0.0 KB/s)
           Processes:	
            Resident:	     544.9 MB	 kernel_task
            Resident:	     383.1 MB	 com.apple.WebKit.WebContent
            Resident:	     274.1 MB	 com.apple.Safari
            Resident:	     168.6 MB	 Google Chrome H
            Resident:	     133.3 MB	 com.apple.IconServicesAgent
            Resident:	     101.9 MB	 com.google.Chrome
            Resident:	      95.2 MB	 com.apple.WindowServer
            Resident:	      86.9 MB	 com.apple.metadata.Spotlight
            Resident:	      81.2 MB	 com.google.GoogleDrive
            Resident:	      79.9 MB	 com.getdropbox.dropbox

                Time:	2014-05-23 21:50:16 to 2014-05-23 22:00:16 (00:10:00)
                Free:	    2690.2 MB
               Wired:	     885.9 MB
          Compressor:	       0.0 KB
          Compressed:	       0.0 KB
            Internal:	    2818.8 MB
            External:	    1794.1 MB
           Purgeable:	     493.3 MB

     IOAccelResident:	     701.6 MB
        IOAccelWired:	     104.6 MB
        IOAccelDirty:	     700.9 MB
       IOAccelCached:	       0.0 KB
    IOAccelPurgeable:	     219.7 MB

              Faults:	    732550
              Purges:	         0 (       0.0 KB/s)
          Zero-fills:	    648617 (       4.2 MB/s)
       Reactivations:	         0 (       0.0 KB/s)
            Page-ins:	      8261 (      55.1 KB/s)
           Page-outs:	         0 (       0.0 KB/s)
      Decompressions:	         0 (       0.0 KB/s)
        Compressions:	         0 (       0.0 KB/s)
            Swap-ins:	         0 (       0.0 KB/s)
           Swap-outs:	         0 (       0.0 KB/s)
           Processes:	
            Resident:	     552.0 MB	 kernel_task
            Resident:	     398.1 MB	 com.apple.WebKit.WebContent
            Resident:	     275.5 MB	 com.apple.Safari
            Resident:	     171.7 MB	 Google Chrome H
            Resident:	     137.2 MB	 com.apple.IconServicesAgent
            Resident:	     107.4 MB	 com.apple.WindowServer
            Resident:	     102.4 MB	 com.google.Chrome
            Resident:	      98.0 MB	 com.apple.Finder
            Resident:	      90.6 MB	 com.apple.TextEdit
            Resident:	      87.2 MB	 com.apple.metadata.Spotlight

                Time:	2014-05-23 22:10:16 to 2014-05-23 22:20:16 (00:09:59)
                Free:	    2307.2 MB
               Wired:	     945.1 MB
          Compressor:	       0.0 KB
          Compressed:	       0.0 KB
            Internal:	    3117.4 MB
            External:	    1820.7 MB
           Purgeable:	     721.3 MB

     IOAccelResident:	     890.4 MB
        IOAccelWired:	      99.3 MB
        IOAccelDirty:	     889.7 MB
       IOAccelCached:	       0.0 KB
    IOAccelPurgeable:	     415.8 MB

              Faults:	    635473
              Purges:	         0 (       0.0 KB/s)
          Zero-fills:	    740152 (       4.8 MB/s)
       Reactivations:	         0 (       0.0 KB/s)
            Page-ins:	       896 (       6.0 KB/s)
           Page-outs:	         0 (       0.0 KB/s)
      Decompressions:	         0 (       0.0 KB/s)
        Compressions:	         0 (       0.0 KB/s)
            Swap-ins:	         0 (       0.0 KB/s)
           Swap-outs:	         0 (       0.0 KB/s)
           Processes:	
            Resident:	     609.4 MB	 kernel_task
            Resident:	     398.6 MB	 com.apple.WebKit.WebContent
            Resident:	     326.7 MB	 com.apple.Safari
            Resident:	     172.0 MB	 Google Chrome H
            Resident:	     137.1 MB	 com.apple.IconServicesAgent
            Resident:	     108.1 MB	 com.apple.WindowServer
            Resident:	     102.4 MB	 com.google.Chrome
            Resident:	      98.1 MB	 com.apple.Finder
            Resident:	      91.7 MB	 com.apple.metadata.Spotlight
            Resident:	      80.9 MB	 com.google.GoogleDrive


Processes
=========
           Wake Time:	00:58:59
            CPU Time:	00:15:31 (26.3%)
          Interrupts:	1197261
    Process Launches:	338

中略

Top CPU Activity
================
                Time:	2014-05-23 21:30:24 to 2014-05-23 21:40:16 (00:09:52)
      Interrupt Rate:	1813 Hz
         C-State Res:	71.6%   C2 1%   C6 0%   C7 70%
    Process Intrpts.:	271567
            CPU Time:	00:04:23 (44.6%)
                  	00:01:08 (11.6%)  	7800	com.apple.WebKit.WebContent
                  	00:00:22 (3.8%)  	20761	com.apple.WindowServer
                  	00:00:16 (2.8%)  	1141	com.apple.Safari
                  	00:00:14 (2.4%)  	885	com.google.Chrome
                  	00:00:11 (1.9%)  	73	com.apple.xpcd

                Time:	2014-05-23 22:00:16 to 2014-05-23 22:10:16 (00:10:00)
      Interrupt Rate:	1267 Hz
         C-State Res:	74.3%   C2 1%   C6 0%   C7 73%
    Process Intrpts.:	337996
            CPU Time:	00:02:44 (27.3%)
                  	00:00:38 (6.4%)  	4299	com.apple.WebKit.WebContent
                  	00:00:19 (3.2%)  	10312	Google Chrome H
                  	00:00:18 (3.1%)  	1386	com.apple.Safari
                  	00:00:14 (2.4%)  	15294	com.apple.WindowServer
                  	00:00:11 (1.9%)  	252471	kernel_task

                Time:	2014-05-23 21:40:16 to 2014-05-23 21:50:16 (00:09:59)
      Avg. Frequency:	2.499 GHz
      Interrupt Rate:	936 Hz
         C-State Res:	74.3%   C2 1%   C6 0%   C7 73%
    Process Intrpts.:	197507
            CPU Time:	00:03:06 (31.1%)
                  	00:00:54 (9.0%)  	15883	Google Chrome H
                  	00:00:36 (6.0%)  	5037	com.apple.WebKit.WebContent
                  	00:00:18 (3.0%)  	21106	com.apple.WindowServer
                  	00:00:12 (2.1%)  	1079	com.apple.Safari
                  	00:00:09 (1.5%)  	13897	PluginProcess


Connected Devices
=================
  Display Brightness:	32.5%
            Wi-Fi on:	00:00:00 (0% of total)
     Discrete GPU on:	00:00:00 (0% of total)
        Bluetooth on:	00:58:57 (100% of total)

Thunderbolt Devices
 - Thunderbolt to Gigabit Ethernet Adapter

コマンドラインスイッチは

sudo systemstats --help

で確認可能。例えば、起動してから現在までの情報を取りたい場合は次のように指定するし、

sudo systemstats -B current

特定の日付の情報を取りたい場合は

sudo systemstats -D 20140522

のように利用可能。もちろん、単独でも実行可能。

夜中に上がってくるsystemstatsについて

launchdによって0:15にコマンドが実行される。これは、以下のファイルによって定義されている。

  • /System/Library/LaunchDaemons/com.apple.systemstats.daily.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.apple.systemstats.daily</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/sbin/systemstats</string>
		<string>--daily</string>
	</array>
	<key>LowPriorityIO</key>
	<true/>
	<key>Nice</key>
	<integer>1</integer>
	<key>StartCalendarInterval</key>
	<dict>
		<key>Hour</key>
		<integer>00</integer>
		<key>Minute</key>
		<integer>15</integer>
	</dict>
</dict>
</plist>
なおしかた

systemstatsがCPUだけ食って1時間以上もプロセスが上がっている状態は、systemstatsを構成する何かが破損した可能性が高い。破損ファイルの修復方法はわからないため、是正措置としてはフォルダーごと削除か移動して、全部最初から作り直すことになる。systemstatsは、/private/var/db/systemstatsがなければ勝手に作ってくれる。なお、systemstats cpu usage 100%中に/private/var/db/systemstatsの中身をls -lahtしていると、次々とファイルが作られていくのでなんか頑張ってるのかな?と思ってしまうが、騙されてはいけない。無駄な仕事をしているだけなので。

  1. sudo launchctl stop com.apple.systemstatsd
  2. sudo launchctl stop com.apple.systemstats.analysis
  3. sudo mv /private/var/db/systemstats /private/var/db/systemstats.bak

とすれば、もうあとは再起動さえすればたぶんなおる。0:15を待つべし。

0:15まで待てないとき

上で書いたように、com.apple.systemstats.daily.plistによって0:15に上がってくることが定義されているが、そんな時間まで待てない場合は、こんな感じで要素を一部書き換えて、launchdが走らせてくれるようにする。

sudo vi /System/Library/LaunchDaemons/com.apple.systemstats.daily.plist

で、編集可能な状態でplistが開くため、例えば22:30に動かす場合はこんな感じに変更。

前略
	<dict>
		<key>Hour</key>
		<integer>22</integer>
		<key>Minute</key>
		<integer>30</integer>
	</dict>
後略

rebootすれば、22:30に新しいDBでsystemstatsしてくれる。ちなみに再起動が面倒なので、サボってsudo launchctl start com.apple.systemstatsdを試してみたけれど、うまく動いてくれなかった。

確認事項

com.apple.systemstats.daily.plistで指定した時刻にsystemstatsが起動し、30秒程度でsystemstatsがプロセス一覧から消えることを確認する。

後処理

0:15を過ぎて、うまく動いているのを確認できたら、次のコマンドでバックアップファイルを削除しましょう。もう必要ないので。

  • sudo rm -r /private/var/db/systemstats.bak

com.apple.systemstats.daily.plistを書き換えた場合は、起動時刻を0:15に戻しておくのをお忘れなく。ちなみに再発防止のための恒久対策はない。
はい、ちゅんちゅん。