Monthly Archives: 2月 2017

Xiaomiの自社SoC Surge S1登場。スナドラ625/MediaTek P20対抗


Xiaomi(小米)が、中国のSoCメーカLeadcore Technologyと組んで、オリジナルのSoCを作っている、という話があった。

で・・・MWCにて詳細発表があったようだ。
[Xiaomi] Xiaomi’s First In-House SoC Chipset “Surge S1” Unveiled !

内容の要点
・Snapdragon 625およびMediaTek P10/P20の対抗として、Surge S1を開発
・ARM Cortex-A53コアを使用。2.2GHzコア*4個+1.4GHzコア*4個の計8コア
  28nm HPCプロセス製造
・GPUはARM Mali-T860採用
  Mali-T760と比較し、40%の消費電力削減
・LTEなどの通信機能を司るbaseband部分はOTAによるアップデート可能
  → VoLTEなどで技術革新があっても、あとから対応できる
・独自の画像処理プロセッサー(ISP)により暗いところでの画質などが向上,HDRにも対応
  消費電力や処理時の内部バスの使用帯域幅などが削減されている
・独自の音声処理プロセッサー(DSP)により高音質のVoLTE通話を実現

スナドラ820対抗ぐらいうたってくるかと思ったら、廉価な方で攻める模様。

また、パートナーのLeadcoretechの既存プロセッサって、Cortex-A7までで、Cortex-A53世代って、正式リリースされたものって無いし、LeadcoretechのLTE対応チップセットを採用してる製品もほとんど無いんですよね。
3Gも、中国向けのTD-SCDMA向けばかりですし・・・

果たして、どのレベルに仕上がっているのか…非常に怖いところです。

そんなSurge S1を採用した製品は・・・「Mi 5c」です。

Meet Mi 5c – it’s ultra slim, lightweight, and powered by Surge S1, our first-ever in-house designed SoC chipset. It comes with a 5.15″ JDI display and 1.6mm ultra-thin bezels. Having our own chipset means we’re able to now handle backlight optimization at chipset levels — up to 2048 ultra-precise brightness adjustment levels. It also comes with a large 1.25μm pixel size camera sensor which runs on Surge ISP algorithm, which enhances light sensitivity by up to 150%. The Mi 5c also comes with front fingerprint sensor, 9V 2A fast charging, and is only 132g with its ultra-light metal body. The 3GB+64GB version retails for RMB 1,499. Like it?

Highlights
– Powered by Surge S1, octa-core 64-bit processor (2.2GHz quad-core A53 + 1.4GHz quad-core A53)
– 5.15” display, 550-nit brightness, 2048 brightness levels with ultra-precise backlight controls
– Slim and light premium metal body: 132g and 7.09mm thin
– 2860mAh battery; 9V/2A fast charging
– 3GB + 64GB, dual-channel LPDDR3 + eMMC5.0
– 1.25 micron pixel size, ultra light-sensitive 12MP camera
– Single-frame HDR
– Front fingerprint sensor
– RMB 1,499


まぁ・・・どんな感じでしょうね

Spreadtrumから新SoC SC9861G-IAが登場。IAはIntel Airmontアーキテクチャの意味!


現在開催中のMWC2017にあわせて、中国のSpreadtrumから、新しいSoCが発表されました。

Spreadtrum launches 14nm 8-core 64-bit mid- and high-end LTE SoC platform

Intel AirmountアーキテクチャによるCPUコアを8個と、LTE関連回路をあわせて14nmプロセスで製造した、SC9861G-IAが新登場です。

あ・・・一つお詫びがあります。
「IAはIntel Airmountアーキテクチャの意味」ってタイトルですが、公式に言われたわけじゃないです。なので、もしかするとIntel Architectureの意味かもしれません。

さて、従来SpreadtrumからはSC9860GというCortex-A53コアを8個搭載(2GHzコア*4個+1.25GHzコア*4個)し、TSMC 16nm FFCプロセスで製造したSoCを提供していました。

それの演算部分をIntel Airmontに置き換えたようなものになるようです。

ASUSのIntelプロセッサ搭載のAndroidスマホ/タブレットなどで使われていたIntel Atom Z3530のCPUコアは22nmプロセス製造のSilvermontで、GPUコアはPowerVR GR6430でした。(Z3735DはSilvermont/Intel GPU)
Silvermontの次の世代がAirmontコアなのですが、Intelからのスマホ向けプロセッサはSilvermontで最後ということになっていました。
Windows向けに出ているAirmont世代のAtomプロセッサはAtom x5-Z8300/Z8500ですが、これらのGPUはIntel GPUです。

今回のSC9681G-IAは、CPUコアはAirmontで、GPUはPowerVR GT7200という形となります。
つまりは従来発売されていたIntelプロセッサ搭載のAndroidスマホ/タブレットを置き換える目的に使うようです。

SC9861G-IAの出荷は2017年Q2ということなので、秋ぐらいの製品発表に注目しましょう

CentOS7のcronによるログStarting user-0.sliceなどをmessagesから消す方法


CentOS7でcronによるプログラム実行を有効にすると、5分毎に下記の様な出力がある。

journalctlのログには下記の様な感じで

# journalctl |grep " 2月 28 08:30:01"
 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 745 of user username.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 745 of user username.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 744 of user username.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 744 of user username.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Created slice user-499.slice.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting user-499.slice.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 743 of user munin.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 743 of user munin.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Created slice user-0.slice.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting user-0.slice.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 746 of user root.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 746 of user root.
 2月 28 08:30:01 blog.osakana.net CROND[713]: (username) CMD (/~/script/toppage.pl >> /~/tw5-topcheck.txt 2>&1)
 2月 28 08:30:01 blog.osakana.net CROND[723]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron)
 2月 28 08:30:01 blog.osakana.net CROND[724]: (root) CMD (/usr/lib64/sa/sa1 1 1)
 2月 28 08:30:01 blog.osakana.net systemd[1]: Removed slice user-0.slice.
 2月 28 08:30:01 blog.osakana.net systemd[1]: Stopping user-0.slice.
#

/var/log/messagesの方には下記の様な感じで・・・

# grep "Feb 28 08:30:01" /var/log/messages
Feb 28 08:30:01 blog.osakana.net systemd: Started Session 745 of user username.
Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 745 of user username.
Feb 28 08:30:01 blog.osakana.net systemd: Started Session 744 of user username.
Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 744 of user username.
Feb 28 08:30:01 blog.osakana.net systemd: Created slice user-499.slice.
Feb 28 08:30:01 blog.osakana.net systemd: Starting user-499.slice.
Feb 28 08:30:01 blog.osakana.net systemd: Started Session 743 of user munin.
Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 743 of user munin.
Feb 28 08:30:01 blog.osakana.net systemd: Created slice user-0.slice.
Feb 28 08:30:01 blog.osakana.net systemd: Starting user-0.slice.
Feb 28 08:30:01 blog.osakana.net systemd: Started Session 746 of user root.
Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 746 of user root.
Feb 28 08:30:01 blog.osakana.net systemd: Removed slice user-0.slice.
Feb 28 08:30:01 blog.osakana.net systemd: Stopping user-0.slice.
#

これを消すための方法をググると、 「/etc/systemd/system.confにLogLevel=noticeを書けばok」なんてのが出てきます。
しかし、これはsystemd全体のログを出力させなくするものであって、今回のログ以外にも出てこなくなってしまうものが発生します。

もっと影響範囲が狭い対処方法がないか探したところRedHatサイトで下記を発見
Logs flooded with systemd messages: Created slice & Starting Session

これは、systemdによるログはrsyslogにより/var/log/messagesに記録されているが、systemdからの特定文字列が含まれるログ出力を無視する設定をrsyslogの設定ファイルに記載する、というやり方です。(journalctlの次の段階の出力を調整する手法のため、journalctlの出力結果は変わらない)

下記のコマンドで/etc/rsyslog.d/ignore-systemd-session-slice.confファイルを作成します。

echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf

その後、「systemctl restart rsyslog」でrsyslogを再起動します。

# ls -l /etc/rsyslog.d
合計 4
-rw-r--r--. 1 root root 49 11月 22 10:27 listen.conf
# cat /etc/rsyslog.d/listen.conf
$SystemLogSocketName /run/systemd/journal/syslog
# echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf
# ls -l /etc/rsyslog.d
合計 8
-rw-r--r--. 1 root root 180  2月 28 09:14 ignore-systemd-session-slice.conf
-rw-r--r--. 1 root root  49 11月 22 10:27 listen.conf
# cat /etc/rsyslog.d/ignore-systemd-session-slice.conf
if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-") then stop
# systemctl restart rsyslog
#

上記の対処後の状況を見てみる

# tail /var/log/messages
Feb 28 09:20:01 blog systemd: Removed slice user-0.slice.
Feb 28 09:20:01 blog.osakana.net systemd: Stopping user-0.slice.
Feb 28 09:20:22 blog.osakana.net systemd: Removed slice user-499.slice.
Feb 28 09:20:22 blog.osakana.net systemd: Stopping user-499.slice.
#

/var/log/messages は・・・「Removed slice」と「Stopping user-」が条件になかったので、記録されていました。
下記の様に編集して、対処しました。

# cat /etc/rsyslog.d/ignore-systemd-session-slice.conf
if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Removed slice" or $msg contains "Stopping user-") then stop
$

journalctlの方は引き続き出力ありです。

# journalctl |tail
 2月 28 09:30:01 blog.osakana.net systemd[1]: Started Session 783 of user username.
 2月 28 09:30:01 blog.osakana.net systemd[1]: Starting Session 783 of user username.
 2月 28 09:30:01 blog.osakana.net CROND[6940]: (root) CMD (/usr/lib64/sa/sa1 1 1)
 2月 28 09:30:01 blog.osakana.net CROND[6942]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron)
 2月 28 09:30:01 blog.osakana.net CROND[6943]: (username) CMD (/~/script/toppage.pl >> /~/tw5-topcheck.txt 2>&1)
 2月 28 09:30:01 blog.osakana.net systemd[1]: Removed slice user-0.slice.
 2月 28 09:30:01 blog.osakana.net systemd[1]: Stopping user-0.slice.
 2月 28 09:30:25 blog.osakana.net systemd[1]: Removed slice user-499.slice.
 2月 28 09:30:25 blog.osakana.net systemd[1]: Stopping user-499.slice.
#

CentOS7上のPowerShell Coreで使えるコマンドレット群


CentOS7上で使えるPowerShell Coreでメールを送ろうとした。

スクリプトは「PowerShellを使って日本語メールを送信する方法(v2.0も対応する版)」で使ったものを使用・・・

しかし、Send-MailMessageが存在せず、メール送信に失敗した。

PS /root> Send-MailMessage
Send-MailMessage : The term 'Send-MailMessage' is not recognized as the name of
 a cmdlet, function, script file, or operable program. Check the spelling of th
e name, or if a path was included, verify that the path is correct and try agai
n.
At line:1 char:1
+ Send-MailMessage
+ ~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Send-MailMessage:String) [], Co
   mmandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS /root>

どうやら、使えないコマンドレットがそこそこあるようなんだけど、具体的に何なら使えるのかを書いてあるところを見つけられなかった。

しかし、「Get-Module」で取得できるモジュール情報の「ExportedCommands」には、そのモジュールで提供されているコマンドレット/関数一覧がある。
そこで、PowerShell Core環境で用意されているPowerShellでは、どのようなコマンドレットが使えるのか、リストアップしてみた。

PS /root> Get-Module -ListAvailable | % { $_.ExportedCommands.Values } | Sort-Object Name

CommandType     Name                                               Version    S
                                                                              o
                                                                              u
                                                                              r
                                                                              c
                                                                              e
-----------     ----                                               -------    -
Cmdlet          Add-Content                                        3.1.0.0    M
Cmdlet          Add-Member                                         3.1.0.0    M
Function        Add-NodeKeys                                       0.0        P
Cmdlet          Add-Type                                           3.1.0.0    M
Function        AddDscResourceProperty                             0.0        P
Function        AddDscResourcePropertyFromMetadata                 0.0        P
Function        AfterAll                                           3.3.9      P
Function        AfterEach                                          3.3.9      P
Function        Assert-MockCalled                                  3.3.9      P
Function        Assert-VerifiableMocks                             3.3.9      P
Function        BeforeAll                                          3.3.9      P
Function        BeforeEach                                         3.3.9      P
Function        CheckResourceFound                                 0.0        P
Cmdlet          Clear-Content                                      3.1.0.0    M
Cmdlet          Clear-Item                                         3.1.0.0    M
Cmdlet          Clear-ItemProperty                                 3.1.0.0    M
Cmdlet          Clear-Variable                                     3.1.0.0    M
Cmdlet          Compare-Object                                     3.1.0.0    M
Function        Compress-Archive                                   1.0.1.0    M
Function        Configuration                                      0.0        P
Function        Context                                            3.3.9      P
Cmdlet          Convert-Path                                       3.1.0.0    M
Cmdlet          ConvertFrom-Csv                                    3.1.0.0    M
Cmdlet          ConvertFrom-Json                                   3.1.0.0    M
Cmdlet          ConvertFrom-SecureString                           3.0.0.0    M
Cmdlet          ConvertFrom-StringData                             3.1.0.0    M
Cmdlet          ConvertTo-Csv                                      3.1.0.0    M
Cmdlet          ConvertTo-Html                                     3.1.0.0    M
Cmdlet          ConvertTo-Json                                     3.1.0.0    M
Function        ConvertTo-MOFInstance                              0.0        P
Cmdlet          ConvertTo-SecureString                             3.0.0.0    M
Cmdlet          ConvertTo-Xml                                      3.1.0.0    M
Cmdlet          Copy-Item                                          3.1.0.0    M
Cmdlet          Copy-ItemProperty                                  3.1.0.0    M
Cmdlet          Debug-Process                                      3.1.0.0    M
Cmdlet          Debug-Runspace                                     3.1.0.0    M
Function        Describe                                           3.3.9      P
Cmdlet          Disable-PSBreakpoint                               3.1.0.0    M
Cmdlet          Disable-RunspaceDebug                              3.1.0.0    M
Cmdlet          Enable-PSBreakpoint                                3.1.0.0    M
Cmdlet          Enable-RunspaceDebug                               3.1.0.0    M
Function        Expand-Archive                                     1.0.1.0    M
Cmdlet          Export-Alias                                       3.1.0.0    M
Cmdlet          Export-Clixml                                      3.1.0.0    M
Cmdlet          Export-Csv                                         3.1.0.0    M
Cmdlet          Export-FormatData                                  3.1.0.0    M
Cmdlet          Export-PSSession                                   3.1.0.0    M
Alias           fhx ->                                             3.1.0.0    M
Alias           fimo ->                                            1.1.2.0    P
Function        Find-Command                                       1.1.2.0    P
Function        Find-DscResource                                   1.1.2.0    P
Function        Find-Module                                        1.1.2.0    P
Cmdlet          Find-Package                                       1.1.2.0    P
Cmdlet          Find-PackageProvider                               1.1.2.0    P
Function        Find-RoleCapability                                1.1.2.0    P
Function        Find-Script                                        1.1.2.0    P
Cmdlet          Format-Custom                                      3.1.0.0    M
Function        Format-Hex                                         3.1.0.0    M
Cmdlet          Format-List                                        3.1.0.0    M
Cmdlet          Format-Table                                       3.1.0.0    M
Cmdlet          Format-Wide                                        3.1.0.0    M
Alias           gcfg ->                                            0.0        P
Alias           gcfgs ->                                           0.0        P
Function        Generate-VersionInfo                               0.0        P
Cmdlet          Get-Alias                                          3.1.0.0    M
Cmdlet          Get-ChildItem                                      3.1.0.0    M
Function        Get-CompatibleVersionAddtionaPropertiesStr         0.0        P
Function        Get-ComplexResourceQualifier                       0.0        P
Function        Get-ConfigurationErrorCount                        0.0        P
Cmdlet          Get-Content                                        3.1.0.0    M
Cmdlet          Get-Credential                                     3.0.0.0    M
Cmdlet          Get-Culture                                        3.1.0.0    M
Cmdlet          Get-Date                                           3.1.0.0    M
Function        Get-DscResource                                    0.0        P
Function        Get-DSCResourceModules                             0.0        P
Function        Get-EncryptedPassword                              0.0        P
Cmdlet          Get-Event                                          3.1.0.0    M
Cmdlet          Get-EventSubscriber                                3.1.0.0    M
Cmdlet          Get-ExecutionPolicy                                3.0.0.0    M
Cmdlet          Get-FileHash                                       3.1.0.0    M
Cmdlet          Get-FormatData                                     3.1.0.0    M
Cmdlet          Get-Host                                           3.1.0.0    M
Function        Get-InnerMostErrorRecord                           0.0        P
Function        Get-InstalledModule                                1.1.2.0    P
Function        Get-InstalledScript                                1.1.2.0    P
Cmdlet          Get-Item                                           3.1.0.0    M
Cmdlet          Get-ItemProperty                                   3.1.0.0    M
Cmdlet          Get-ItemPropertyValue                              3.1.0.0    M
Cmdlet          Get-Location                                       3.1.0.0    M
Cmdlet          Get-Member                                         3.1.0.0    M
Function        Get-MockDynamicParameters                          3.3.9      P
Function        Get-MofInstanceName                                0.0        P
Function        Get-MofInstanceText                                0.0        P
Cmdlet          Get-Package                                        1.1.2.0    P
Cmdlet          Get-PackageProvider                                1.1.2.0    P
Cmdlet          Get-PackageSource                                  1.1.2.0    P
Function        Get-PositionInfo                                   0.0        P
Cmdlet          Get-Process                                        3.1.0.0    M
Cmdlet          Get-PSBreakpoint                                   3.1.0.0    M
Cmdlet          Get-PSCallStack                                    3.1.0.0    M
Function        Get-PSCurrentConfigurationNode                     0.0        P
Function        Get-PSDefaultConfigurationDocument                 0.0        P
Cmdlet          Get-PSDrive                                        3.1.0.0    M
Function        Get-PSMetaConfigDocumentInstVersionInfo            0.0        P
Function        Get-PSMetaConfigurationProcessed                   0.0        P
Cmdlet          Get-PSProvider                                     3.1.0.0    M
Cmdlet          Get-PSReadlineKeyHandler                           1.2        P
Cmdlet          Get-PSReadlineOption                               1.2        P
Function        Get-PSRepository                                   1.1.2.0    P
Function        Get-PSTopConfigurationName                         0.0        P
Function        Get-PublicKeyFromFile                              0.0        P
Function        Get-PublicKeyFromStore                             0.0        P
Cmdlet          Get-Random                                         3.1.0.0    M
Cmdlet          Get-Runspace                                       3.1.0.0    M
Cmdlet          Get-RunspaceDebug                                  3.1.0.0    M
Function        Get-TestDriveItem                                  3.3.9      P
Cmdlet          Get-TraceSource                                    3.1.0.0    M
Cmdlet          Get-TypeData                                       3.1.0.0    M
Cmdlet          Get-UICulture                                      3.1.0.0    M
Cmdlet          Get-Unique                                         3.1.0.0    M
Cmdlet          Get-Uptime                                         3.1.0.0    M
Cmdlet          Get-Variable                                       3.1.0.0    M
Cmdlet          Get-Verb                                           3.1.0.0    M
Function        GetCompositeResource                               0.0        P
Function        GetImplementingModulePath                          0.0        P
Function        GetModule                                          0.0        P
Function        GetPatterns                                        0.0        P
Function        GetResourceFromKeyword                             0.0        P
Function        GetSyntax                                          0.0        P
Alias           glcm ->                                            0.0        P
Cmdlet          Group-Object                                       3.1.0.0    M
Function        HookGetViewAutoCompleter                           1.21       P
Cmdlet          Import-Alias                                       3.1.0.0    M
Cmdlet          Import-Clixml                                      3.1.0.0    M
Cmdlet          Import-Csv                                         3.1.0.0    M
Cmdlet          Import-LocalizedData                               3.1.0.0    M
Cmdlet          Import-PackageProvider                             1.1.2.0    P
Function        Import-PowerShellDataFile                          3.1.0.0    M
Cmdlet          Import-PSSession                                   3.1.0.0    M
Function        ImportCimAndScriptKeywordsFromModule               0.0        P
Function        ImportClassResourcesFromModule                     0.0        P
Function        In                                                 3.3.9      P
Function        Initialize-ConfigurationRuntimeState               0.0        P
Alias           inmo ->                                            1.1.2.0    P
Function        InModuleScope                                      3.3.9      P
Function        Install-Module                                     1.1.2.0    P
Cmdlet          Install-Package                                    1.1.2.0    P
Cmdlet          Install-PackageProvider                            1.1.2.0    P
Function        Install-Script                                     1.1.2.0    P
Cmdlet          Invoke-Expression                                  3.1.0.0    M
Cmdlet          Invoke-Item                                        3.1.0.0    M
Function        Invoke-Mock                                        3.3.9      P
Function        Invoke-Pester                                      3.3.9      P
Cmdlet          Invoke-RestMethod                                  3.1.0.0    M
Cmdlet          Invoke-WebRequest                                  3.1.0.0    M
Function        IsHiddenResource                                   0.0        P
Function        IsPatternMatched                                   0.0        P
Function        It                                                 3.3.9      P
Cmdlet          Join-Path                                          3.1.0.0    M
Cmdlet          Measure-Command                                    3.1.0.0    M
Cmdlet          Measure-Object                                     3.1.0.0    M
Function        Mock                                               3.3.9      P
Cmdlet          Move-Item                                          3.1.0.0    M
Cmdlet          Move-ItemProperty                                  3.1.0.0    M
Cmdlet          New-Alias                                          3.1.0.0    M
Function        New-DscChecksum                                    0.0        P
Cmdlet          New-Event                                          3.1.0.0    M
Function        New-Fixture                                        3.3.9      P
Cmdlet          New-Guid                                           3.1.0.0    M
Cmdlet          New-Item                                           3.1.0.0    M
Cmdlet          New-ItemProperty                                   3.1.0.0    M
Cmdlet          New-Object                                         3.1.0.0    M
Cmdlet          New-PSDrive                                        3.1.0.0    M
Function        New-ScriptFileInfo                                 1.1.2.0    P
Cmdlet          New-TemporaryFile                                  3.1.0.0    M
Cmdlet          New-TimeSpan                                       3.1.0.0    M
Cmdlet          New-Variable                                       3.1.0.0    M
Function        Node                                               0.0        P
Cmdlet          Out-File                                           3.1.0.0    M
Cmdlet          Out-String                                         3.1.0.0    M
Alias           pbcfg ->                                           0.0        P
Cmdlet          Pop-Location                                       3.1.0.0    M
Function        PSConsoleHostReadline                              1.2        P
Function        Publish-Module                                     1.1.2.0    P
Function        Publish-Script                                     1.1.2.0    P
Alias           pumo ->                                            1.1.2.0    P
Cmdlet          Push-Location                                      3.1.0.0    M
Cmdlet          Read-Host                                          3.1.0.0    M
Function        ReadEnvironmentFile                                0.0        P
Cmdlet          Register-EngineEvent                               3.1.0.0    M
Cmdlet          Register-ObjectEvent                               3.1.0.0    M
Cmdlet          Register-PackageSource                             1.1.2.0    P
Function        Register-PSRepository                              1.1.2.0    P
Cmdlet          Remove-Event                                       3.1.0.0    M
Cmdlet          Remove-Item                                        3.1.0.0    M
Cmdlet          Remove-ItemProperty                                3.1.0.0    M
Cmdlet          Remove-PSBreakpoint                                3.1.0.0    M
Cmdlet          Remove-PSDrive                                     3.1.0.0    M
Cmdlet          Remove-PSReadlineKeyHandler                        1.2        P
Cmdlet          Remove-TypeData                                    3.1.0.0    M
Cmdlet          Remove-Variable                                    3.1.0.0    M
Cmdlet          Rename-Item                                        3.1.0.0    M
Cmdlet          Rename-ItemProperty                                3.1.0.0    M
Cmdlet          Resolve-Path                                       3.1.0.0    M
Alias           rtcfg ->                                           0.0        P
Alias           sacfg ->                                           0.0        P
Function        Save-Module                                        1.1.2.0    P
Cmdlet          Save-Package                                       1.1.2.0    P
Function        Save-Script                                        1.1.2.0    P
Cmdlet          Select-Object                                      3.1.0.0    M
Cmdlet          Select-String                                      3.1.0.0    M
Cmdlet          Select-Xml                                         3.1.0.0    M
Cmdlet          Set-Alias                                          3.1.0.0    M
Cmdlet          Set-Content                                        3.1.0.0    M
Cmdlet          Set-Date                                           3.1.0.0    M
Function        Set-DynamicParameterVariables                      3.3.9      P
Cmdlet          Set-ExecutionPolicy                                3.0.0.0    M
Cmdlet          Set-Item                                           3.1.0.0    M
Cmdlet          Set-ItemProperty                                   3.1.0.0    M
Cmdlet          Set-Location                                       3.1.0.0    M
Function        Set-NodeExclusiveResources                         0.0        P
Function        Set-NodeManager                                    0.0        P
Function        Set-NodeResources                                  0.0        P
Function        Set-NodeResourceSource                             0.0        P
Cmdlet          Set-PackageSource                                  1.1.2.0    P
Cmdlet          Set-PSBreakpoint                                   3.1.0.0    M
Function        Set-PSCurrentConfigurationNode                     0.0        P
Function        Set-PSDefaultConfigurationDocument                 0.0        P
Function        Set-PSMetaConfigDocInsProcessedBeforeMeta          0.0        P
Function        Set-PSMetaConfigVersionInfoV2                      0.0        P
Cmdlet          Set-PSReadlineKeyHandler                           1.2        P
Cmdlet          Set-PSReadlineOption                               1.2        P
Function        Set-PSRepository                                   1.1.2.0    P
Function        Set-PSTopConfigurationName                         0.0        P
Cmdlet          Set-TraceSource                                    3.1.0.0    M
Cmdlet          Set-Variable                                       3.1.0.0    M
Function        Setup                                              3.3.9      P
Function        Should                                             3.3.9      P
Alias           slcm ->                                            0.0        P
Cmdlet          Sort-Object                                        3.1.0.0    M
Cmdlet          Split-Path                                         3.1.0.0    M
Cmdlet          Start-Process                                      3.1.0.0    M
Cmdlet          Start-Sleep                                        3.1.0.0    M
Cmdlet          Start-Transcript                                   3.0.0.0    M
Cmdlet          Stop-Process                                       3.1.0.0    M
Cmdlet          Stop-Transcript                                    3.0.0.0    M
Function        StrongConnect                                      0.0        P
Alias           tcfg ->                                            0.0        P
Cmdlet          Tee-Object                                         3.1.0.0    M
Function        Test-ConflictingResources                          0.0        P
Function        Test-ModuleReloadRequired                          0.0        P
Function        Test-MofInstanceText                               0.0        P
Function        Test-NodeManager                                   0.0        P
Function        Test-NodeResources                                 0.0        P
Function        Test-NodeResourceSource                            0.0        P
Cmdlet          Test-Path                                          3.1.0.0    M
Function        Test-ScriptFileInfo                                1.1.2.0    P
Function        ThrowError                                         0.0        P
Cmdlet          Trace-Command                                      3.1.0.0    M
Alias           ulcm ->                                            0.0        P
Function        Uninstall-Module                                   1.1.2.0    P
Cmdlet          Uninstall-Package                                  1.1.2.0    P
Function        Uninstall-Script                                   1.1.2.0    P
Cmdlet          Unregister-Event                                   3.1.0.0    M
Cmdlet          Unregister-PackageSource                           1.1.2.0    P
Function        Unregister-PSRepository                            1.1.2.0    P
Alias           upcfg ->                                           0.0        P
Function        Update-ConfigurationDocumentRef                    0.0        P
Function        Update-ConfigurationErrorCount                     0.0        P
Function        Update-DependsOn                                   0.0        P
Cmdlet          Update-FormatData                                  3.1.0.0    M
Function        Update-LocalConfigManager                          0.0        P
Function        Update-Module                                      1.1.2.0    P
Function        Update-ModuleManifest                              1.1.2.0    P
Function        Update-ModuleVersion                               0.0        P
Function        Update-Script                                      1.1.2.0    P
Function        Update-ScriptFileInfo                              1.1.2.0    P
Cmdlet          Update-TypeData                                    3.1.0.0    M
Alias           upmo ->                                            1.1.2.0    P
Function        ValidateNoCircleInNodeResources                    0.0        P
Function        ValidateNodeExclusiveResources                     0.0        P
Function        ValidateNodeManager                                0.0        P
Function        ValidateNodeResources                              0.0        P
Function        ValidateNodeResourceSource                         0.0        P
Function        ValidateNoNameNodeResources                        0.0        P
Function        ValidateUpdate-ConfigurationData                   0.0        P
Cmdlet          Wait-Debugger                                      3.1.0.0    M
Cmdlet          Wait-Event                                         3.1.0.0    M
Cmdlet          Wait-Process                                       3.1.0.0    M
Cmdlet          Write-Debug                                        3.1.0.0    M
Cmdlet          Write-Error                                        3.1.0.0    M
Cmdlet          Write-Host                                         3.1.0.0    M
Cmdlet          Write-Information                                  3.1.0.0    M
Function        Write-Log                                          0.0        P
Function        Write-MetaConfigFile                               0.0        P
Function        Write-NodeMOFFile                                  0.0        P
Cmdlet          Write-Output                                       3.1.0.0    M
Cmdlet          Write-Progress                                     3.1.0.0    M
Cmdlet          Write-Verbose                                      3.1.0.0    M
Cmdlet          Write-Warning                                      3.1.0.0    M
Function        WriteFile                                          0.0        P


PS /root>

CentOS7のdmesgにperf: interrupt took too longに関するメッセージが出力される


CentOS7で運用しているサーバで「perf: interrupt took too long (3989 > 3933), lowering kernel.perf_event_max_sample_rate to 50000」というような出力が発生しているのに気がついた。

$ dmesg|grep "kernel.perf_event_max_sample_rate"
[ 1502.981806] perf: interrupt took too long (2512 > 2500), lowering kernel.perf_event_max_sample_rate to 79000
[ 2019.987492] perf: interrupt took too long (3147 > 3140), lowering kernel.perf_event_max_sample_rate to 63000
[ 2910.077414] perf: interrupt took too long (3989 > 3933), lowering kernel.perf_event_max_sample_rate to 50000
$

パフォーマンス情報を取得するために、どれくらいの周期でデータを取得したらいいのかは、サーバのハードウェア構成などによって変化するため、自動調整するようになっているようだ。
まずは、長い間隔で収集(サンプリングレート)し、うまくデータが取れていないようだったら、だんだん時間を短縮していく、といことになっている。

journalctlでログから発生時刻を確認する。

# journalctl |grep "perf_event_max_sample_rate"
 2月 27 10:44:11 blog.osakana.net kernel: perf: interrupt took too long (2512 > 2500), lowering kernel.perf_event_max_sample_rate to 79000
 2月 27 10:52:48 blog.osakana.net kernel: perf: interrupt took too long (3147 > 3140), lowering kernel.perf_event_max_sample_rate to 63000
 2月 27 11:07:38 blog.osakana.net kernel: perf: interrupt took too long (3989 > 3933), lowering kernel.perf_event_max_sample_rate to 50000
#

この日は10:19頃にkernelアップデートのため再起動したことにより、サンプリングレートの値が初期化され、調整が必要になったようだ。

過去のログを遡ってみると「perf: interrupt took too long (5208 > 5190), lowering kernel.perf_event_max_sample_rate to 38000」というのが、一番低い値である模様。
最初の変更後の値が79000ということを考えると、起動時の初期値は80000以上だったと思われるので、周期が半分以下となったということである。

さて、kernel.perf_event_max_sample_rateの現在値は「/proc/sys/kernel/perf_event_max_sample_rate」で確認出来る。

# cat /proc/sys/kernel/perf_event_max_sample_rate
50000
#

値を変更する場合は、上記に値を入れる。

恒久的に変更するには、sysctlの設定ファイルを作成する。
CentOS7の場合、/etc/sysctl.d ディレクトリに設定ファイルを作成する。
(/etc/sysctl.confに追加するという手もあるが、今後のパッチで変更される可能性があるため)

まず、現在の設定値を確認

# sysctl -a | grep perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 50000
#

/etc/sysctl.d/90-local.conf として設定値を入れた設定ファイルを作成

# echo "kernel.perf_event_max_sample_rate = 38000" > /etc/sysctl.d/90-local.conf
# cat /etc/sysctl.d/90-local.conf
kernel.perf_event_max_sample_rate = 38000
#

sysctlの設定をシステムに適用します。

# sysctl --system
* Applying /usr/lib/sysctl.d/00-system.conf ...
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.d/90-local.conf ...
kernel.perf_event_max_sample_rate = 38000
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.conf ...
#

値が変更されたことを確認します。

# sysctl -a | grep perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 38000
#

2017/03/03追記
kernel.perf_event_max_sample_rate の値を調整した後、現在のところは同じメッセージは出力されていません。

2017/03/22追記
約1ヶ月経過しましたが、出力されていないので、うちの環境では38000で問題ないようです。