Pi2 と arduino をUSB接続してシリアル通信

今日は、Pi2 と arduino をシリアル通信させてLED を光らせてみました。全体像はこんな感じ。

写真 1

緑色のブレッドボードにある LED は arduino の 3pin につながっています。Pi2 からシリアル経由でLED を光らせる形です。

写真 2

良いチュートリアルなBlog 記事があったので、それを習ってみました。

参考 Raspberry PiとArduino間でUSB経由のシリアル通信

 

まず、arduino のスケッチは、上記サイトにあるとおり、

#define LED_PIN (3)
byte val;

void setup(){
  // Serial Setting
  Serial.begin(9600);

  // Port Setting
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);
}

void loop(){
  if(Serial.available() > 0){
    
    val = Serial.read();
    Serial.write(val);
    if(val == 'A'){
      digitalWrite(LED_PIN, HIGH);
    }

    if(val == 'B'){
      digitalWrite(LED_PIN, LOW);
    }
  }
}

そして、書き込んで、今度は pi2 からシリアル通信させます。

USB ケーブルを挿すと、pi2 側の dmesg に以下のように出ますので、覚えておきます。

[root@pi2 ~]# dmesg

::

[ 4270.245917] usb 1-1.5: new full-speed USB device number 5 using dwc_otg

[ 4270.369007] usb 1-1.5: New USB device found, idVendor=1a86, idProduct=7523

[ 4270.376106] usb 1-1.5: New USB device strings: Mfr=0, Product=2, SerialNumber=0

[ 4270.383583] usb 1-1.5: Product: USB2.0-Serial

[ 4271.484705] usbcore: registered new interface driver usbserial

[ 4271.491107] usbcore: registered new interface driver usbserial_generic

[ 4271.499466] usbserial: USB Serial support registered for generic

[ 4271.508688] usbcore: registered new interface driver ch341

[ 4271.514472] usbserial: USB Serial support registered for ch341-uart

[ 4271.521035] ch341 1-1.5:1.0: ch341-uart converter detected

[ 4271.531056] usb 1-1.5: ch341-uart converter now attached to ttyUSB0★

[root@pi2 ~]#

[root@pi2 ~]# ll /dev/ttyUSB0

crw-rw—- 1 root dialout 188, 0  7月  6 23:08 /dev/ttyUSB0★

[root@pi2 ~]#

pi2 からシリアル通信させるプログラムは、minicom というのを使ってみました。

[root@pi2 work]# which minicom

/usr/bin/minicom

設定は、以下のように –s をつけて起動。

▼設定

[root@pi2 work]# LANG=C minicom –s

以下のように cui で選択して設定します。

            ┌─────[configuration]──────┐
            │ Filenames and paths      │
            │ File transfer protocols  │
            │ Serial port setup        │
            │ Modem and dialing        │
            │ Screen and keyboard      │
            │ Save setup as dfl        │
            │ Save setup as..          │
            │ Exit                     │
            │ Exit from Minicom        │
            └──────────────────────────┘

    ┌───────────────────────────────────────────────────────────────────────┐
    │ A -    Serial Device      : /dev/ttyUSB0                              │
    │                                                                       │
    │ C -   Callin Program      :                                           │
    │ D -  Callout Program      :                                           │
    │ E -    Bps/Par/Bits       : 9600 8N1                                  │
    │ F - Hardware Flow Control : Yes                                       │
    │ G - Software Flow Control : No                                        │
    │                                                                       │
    │    Change which setting?                                              │
    └───────────────────────────────────────────────────────────────────────┘

    ┌─────────────────┌─────────[Comm Parameters]──────────┐────────────────┐
    │ A -    Serial De│                                    │                │
    │                 │     Current:  9600 8N1             │                │
    │ C -   Callin Pro│ Speed            Parity      Data  │                │
    │ D -  Callout Pro│ A: <next>        L: None     S: 5  │                │
    │ E -    Bps/Par/B│ B: <prev>        M: Even     T: 6  │                │
    │ F - Hardware Flo│ C:   9600        N: Odd      U: 7  │                │
    │ G - Software Flo│ D:  38400        O: Mark     V: 8  │                │
    │                 │ E: 115200        P: Space          │                │
    │    Change which │                                    │                │
    └─────────────────│ Stopbits                           │────────────────┘
            │ Screen a│ W: 1             Q: 8-N-1          │
            │ Save set│ X: 2             R: 7-E-1          │
            │ Save set│                                    │
            │ Exit    │                                    │
            │ Exit fro│ Choice, or <Enter> to exit?        │
            └─────────└────────────────────────────────────┘

で、実行。

[root@pi2 work]# LANG=C minicom

Welcome to minicom 2.7

OPTIONS: I18n 
Compiled on Aug 17 2014, 17:46:22.
Port /dev/ttyUSB0, 23:40:40

Press CTRL-A Z for help on special keys

AABABABABABAAABAB★こんな感じで、タイプするとLED ついたり消えたり。

終了は、CTL + A 押して、Z でメニュー 以下の Q で終了

┌───────────────────────────────────────────────────────────────────┐
│                      Minicom Command Summary                      │
│                                                                   │
│              Commands can be called by CTRL-A <key>               │
│                                                                   │
│               Main Functions                  Other Functions     │
│                                                                   │
│ Dialing directory..D  run script (Go)....G | Clear Screen.......C │
│ Send files.........S  Receive files......R | cOnfigure Minicom..O │
│ comm Parameters....P  Add linefeed.......A | Suspend minicom....J │
│ Capture on/off.....L  Hangup.............H | eXit and reset.....X │
│ send break.........F  initialize Modem...M | Quit with no reset.Q │
│ Terminal settings..T  run Kermit.........K | Cursor key mode....I │
│ lineWrap on/off....W  local Echo on/off..E | Help screen........Z │
│ Paste file.........Y  Timestamp toggle...N | scroll Back........B │
│ Add Carriage Ret...U                                              │
│                                                                   │
│             Select function or press Enter for none.              │
└───────────────────────────────────────────────────────────────────┘

 

今度は、python から制御。 pyserial を入れます。

[root@pi2 ~]# dnf install python-pip

[root@pi2 ~]# pip install --upgrade pip
You are using pip version 6.0.8, however version 7.1.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.0-py2.py3-none-any.whl#md5=b108384a762825ec20345bb9b5b7209f
  Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
    100% |################################| 1.1MB 37kB/s 
Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Successfully uninstalled pip-6.0.8

Successfully installed pip-7.1.0
[root@pi2 ~]# 

[root@pi2 ~]# pip install pyserial
::
Successfully installed pyserial-2.7
[root@pi2 ~]# 

プログラムは、以下のようにA と B をループして、CTL + C で中断したら、B を流しLEDを消して、終了。

---- loop.py 
# -*- coding: utf-8 -*-
import serial
import time

ser = serial.Serial('/dev/ttyUSB0', 9600)
time.sleep(2)
try:
    while True:
        ser.write('A')
        time.sleep(1)
        ser.write('B')
        time.sleep(1)
except KeyboardInterrupt:
        ser.write('B')
        ser.close()

実行してみます。

[root@pi2 work]# python loop.py

なるほどですね。まぁ、これだと、pi2 の GPIO ピンから直接制御すればええやんってことになりますが、、、次は、arudino のアナログ入力にセンサーをつけて、それをpi2 に渡す方法を実践してみたいと思います。I2C とかシリアルを使わない結線だと、promini とかが使えるので、そういうのをどのようにするのか調査して、実践してみたいと思っています。

なんとかリモートよりxwindow に入れた

まだしっくり着ていませんが、とりあえず osx より Pi2 にx-window 経由で起動できました。

いろいろ設定をいじったので、どこが良くて、何がポイントだったのかちょっとぼけています。絶対忘れるので、何をどうしたらよかったのか、メモ的に書いておきます。間違っているところがたくさんあると思うので、ここかな?っていう部分のみ。

 

osx の term にて以下を実行。Pi2 の IP を入れて、osx の X11 Server に接続許可設定を入れる

$ xhost +192.168.1.24
192.168.1.24 being added to access control list

※xhost は、osx の X11 のツール

osx の ssh設定を以下のように

—- /etc/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
XAuthLocation /opt/X11/bin/xauth

Pi2 の ssh 設定を以下のように

—- /etc/ssh/ssh_config
::
   ForwardX11 yes
::

osx も pi2 も一回再起動。

ターミナルで以下のようにオプションをつけて接続。pi は osx の hosts にてIP 記載してあり名前解決可能な状態。

$ ssh -XC junkhack@pi

※-X で勝手にXQuartz 2.7.7 が起動。C は圧縮

ログインしたら、pi2 にて以下のコマンド実行。

$ xfce4-session startxfce4

このあたり、マニュアル見ると、こうしちゃだめって書いてあるのでたぶん良くないと思います。

 

xfce4-panel_と_xeyes

動作はこんなものかと思えば、まぁ良いのかもですが、速いマシンを使っているヒトには決して向きません。よっぽど特殊な理由がなければまず使わないと断言できます。以下のログアウトが出るまでちょっと時間がかかります。2~5秒くらい。

スクリーンショット_2015_07_06_1_22

キーマップがよくわからず、スペースキーが押せないのでなんとかしないと。他にも問題は山済みですが。

とりあえず、x-window をリモートから接続することは出来ました。

X-Windowsを入れてみる

さて、Pi2 にFedora22 を入れたわけですが、サーバに使うか、クライアントに使うかで迷っていまして。

 

Pi2 をサーバで使うんだったらGUI 環境は入らない派なので今まで見向きもしてきませんでした。しかし、よーく考えてみると以下のようなシーンが想像されます。

・arduino や ESP8266 でシンプルな仕組みを作り、それらを集合させ、画面に表示させるもの

今や、24インチのHDMI ディスプレイが1.5万程度で買える時代なので、工作の幅と表現が増えると面白いんじゃないかと思い、興味を持ち始めています。

 

候補としては、以下の3つでどれが使いやすくて開発しやすいのかまだよくわかりません。Anjuta (アニュータ)+ Glade いうGUI 統合開発環境があるようです。なんと、GTK/GNOMEによる GUIプログラミング が全ページPDFで公開されています。

・LXDE Desktop(GTK+ , Qt)
・Xfce Desktop(GTK+2)
・MATE Desktop(?)

LXDE は、Windows ライクな感じで、一番軽そうな印象。迷った末、以下のページの印象を受け、Xfce をいれてみることにします。

LXDEのインストール方法

Xfceのインストール方法

MATE Desktopのインストール方法

 

インストールパッケージは、700個弱で、グループインストールすれば良いので省きます。自分の環境では、見つからないパッケージが出てエラーとなったので、そういうのは、単体でrpm を落として入れました。

stunnel
tigervnc-server-minimal
tigervnc-license

ちなみに、dnf でローカルインストールは、以下のようにすればよいようです。

yum localinstall [RPMファイル]
dnf install [RPMファイル]

※参考 Fedora 22でパッケージ管理システムがYumからDNFに

 

インターフェイスのイメージは、以下のオフィシャルサイトを見るといいかもです。

http://www.xfce.org/about/tour

 

標準環境の RASPBIAN では LXDE なのでちょっと違うのを選んだという理由もあります。さぁ、どんな感じでしょうかね。

こんな感じになりました。

 

 

1

なかなかシンプルでいい感じです。

2

 

以下のような設定ファイルをホームディレクトリに作りました。

—- .xinitrc

exec startxfce4

以下の設定ファイルも作りました。

—- /etc/X11/Xwrapper.config

allowed_users=anybody

 

まだリモートで接続するやり方がわかりません。が、おいおいやっていくことにします。

pi2 fedora22 ファイルシステムの拡張

16GB の SD Card なので、残りを / に拡張したいので、メモ。

 

・現状の確認。

[root@pi2 log]# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        3.5G  1.4G  2.0G   41% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            464M     0  464M    0% /dev/shm
tmpfs            464M  348K  463M    1% /run
tmpfs            464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p1   200M   21M  180M   11% /boot
tmpfs             93M     0   93M    0% /run/user/0
[root@pi2 log]#

[root@pi2 ~]# blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="509F-31B8" TYPE="vfat" PARTUUID="0008037c-01"
/dev/mmcblk0p2: LABEL="_/" UUID="7c321d6b-f2b0-4783-9576-e3dfe657f9b3" TYPE="ext4" PARTUUID="0008037c-02"
/dev/mmcblk0: PTUUID="0008037c" PTTYPE="dos"
[root@pi2 ~]#

[root@pi2 ~]# blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="509F-31B8" TYPE="vfat" PARTUUID="0008037c-01"
/dev/mmcblk0p2: LABEL="_/" UUID="7c321d6b-f2b0-4783-9576-e3dfe657f9b3" TYPE="ext4" PARTUUID="0008037c-02"
/dev/mmcblk0: PTUUID="0008037c" PTTYPE="dos"
[root@pi2 ~]# 
[root@pi2 ~]# ll /dev/mm*
brw-rw---- 1 root disk 179, 0  1月  1  1970 /dev/mmcblk0
brw-rw---- 1 root disk 179, 1  1月  1  1970 /dev/mmcblk0p1
brw-rw---- 1 root disk 179, 2  1月  1  1970 /dev/mmcblk0p2
[root@pi2 ~]# 

 

boot に200M / に 3.5GB のようです。

拡張の流れは、

・最終パーティションの後ろがあいていれば

・fdisk でサイズ拡張し、

・リブート後に、リサイズ

な感じ。

[root@pi2 log]# fdisk /dev/mmcblk0
n
2
最初のセクタ (411648-31356927, 既定値 411648): エンター
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (411648-31356927, 既定値 31356927): エンター
w

リブートし、その後ファイルシステムを拡張します。

[root@pi2 ~]# resize2fs /dev/mmcblk0p2
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 3868160 (4k) blocks long.

確認。

[root@pi2 ~]# df -T
ファイルシス   タイプ   1K-ブロック    使用   使用可 使用% マウント位置
/dev/root      ext4        15196556 1215912 13927400    9% /
devtmpfs       devtmpfs      469832       0   469832    0% /dev
tmpfs          tmpfs         474128       0   474128    0% /dev/shm
tmpfs          tmpfs         474128     348   473780    1% /run
tmpfs          tmpfs         474128       0   474128    0% /sys/fs/cgroup
/dev/mmcblk0p1 vfat          204580   20772   183808   11% /boot
tmpfs          tmpfs          94828       0    94828    0% /run/user/0
[root@pi2 ~]# 

[root@pi2 ~]# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         15G  1.2G   14G    9% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            464M     0  464M    0% /dev/shm
tmpfs            464M  348K  463M    1% /run
tmpfs            464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p1   200M   21M  180M   11% /boot
tmpfs             93M     0   93M    0% /run/user/0
[root@pi2 ~]# 

[root@pi2 ~]# fdisk  -l
::
デバイス       起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/mmcblk0p1          2048   411647   409600   200M  e W95 FAT16 (LBA)
/dev/mmcblk0p2        411648 31356927 30945280  14.8G 83 Linux

拡張できたようです。

pi2 fedora22 でOC

前回、Pi2に、Fedora22 を入れて、UnixBench を計測したときは、279.9 でちょっと残念だったので設定がどうなっているのか見てみました。

・現在のCPU 動作クロックを確認し、上げてみます。raspi-configはないので、/proc/配下の値をとりあえず見てみます。

[root@pi2 boot]# cat /proc/cpuinfo 
processor    : 0
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor    : 1
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor    : 2
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor    : 3
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

Hardware    : BCM2709
Revision    : a21041
Serial        : 00000000********
[root@pi2 boot]# 

※このあたりには出ないようです。

・/boot/config.txt で、設定できるようなのでやってみます。

[root@pi2 boot]# cat /etc/fstab 
UUID=7c321d6b-f2b0-4783-9576-e3dfe657f9b3 / ext4 defaults,noatime 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 0
[root@pi2 boot]# 

[root@pi2 boot]# blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="509F-31B8" TYPE="vfat" PARTUUID="0008037c-01"
/dev/mmcblk0p2: LABEL="_/" UUID="7c321d6b-f2b0-4783-9576-e3dfe657f9b3" TYPE="ext4" PARTUUID="0008037c-02"
/dev/mmcblk0: PTUUID="0008037c" PTTYPE="dos"
[root@pi2 boot]# 

以下の感じにファイルを作成し、リブートしてみました。

--- /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

--- /boot/config.txt
arm_freq_min=900
arm_freq=1000
core_freq_min=450
core_freq=500
#sdram_freq=500
over_voltage_min=0
over_voltage=2

・以下で、確認します。が、負荷をかけても変わらず。

・温度(34428と出たら34.428度と読み替え)

#cat /sys/class/thermal/thermal_zone0/temp

・最大スピード

#cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

・現在のスピード

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

負荷をかけてもCPUクロックがあがらないのは、何かが足りないようですね。

※ツールを入れて確認してみることにします。

 

・ツールを入れる

[root@pi2 UnixBench]# dnf install cpufrequtils

・以下の感じで、現在の設定を確認できるようです。

[root@pi2 UnixBench]# cpupower frequency-info
analyzing CPU 0:
  driver: BCM2835 CPUFreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 355 us.
  hardware limits: 600 MHz - 900 MHz
  available frequency steps: 600 MHz, 900 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 600 MHz and 900 MHz.
                  The governor "powersave★" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz (asserted by call to hardware).
[root@pi2 UnixBench]# 

・powersave    は、負荷に関わらず、変動可能範囲内の最低のクロックで動作 で動作している模様。

参考 http://d.hatena.ne.jp/kakurasan/20070720/p1

 

省電力モードというところでしょうか。とりあえず、この設定を変えて、600Mhz ~ 900Mhz で動作するようにしてみます。

 

・負荷がかかったら、すぐクロックがあがるように ondemand に設定してみます。

[root@pi2 UnixBench]# cpupower frequency-set -g ondemand
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
[root@pi2 UnixBench]# 

[root@pi2 UnixBench]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand★
[root@pi2 UnixBench]# 

[root@pi2 UnixBench]# cpupower frequency-info
analyzing CPU 0:
  driver: BCM2835 CPUFreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 355 us.
  hardware limits: 600 MHz - 900 MHz
  available frequency steps: 600 MHz, 900 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 600 MHz and 900 MHz.
                  The governor "ondemand★" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz (asserted by call to hardware).
[root@pi2 UnixBench]# 

※設定は変更されたようです。

・現在の値

[root@pi2 ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

600000

[root@pi2 ~]#

・UnixBench で負荷をかけ、値を確認。

[root@pi2 ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

900000★

[root@pi2 ~]#

※負荷がかかれば、クロックはあがっているようです。

・温度のモニタ

[root@pi2 ~]# watch -n 1 cat /sys/class/thermal/thermal_zone0/temp

Every 1.0s: cat /sys/class/thermal/thermal_zone0/temp        Sat Jul  4 15:49:35 2015

60528 ★

※単位は 1/1000℃ 上記例だと、60.528℃。指先でCPU を触ると熱いです。最高で、64℃くらいまであがりました。

指先で冷ますと、58℃くらいに。(熱いです) だから、みなさん放熱板つけているんですね。

 

・BogoMIPS の値もあがっているようです。

[root@pi2 ~]# cat /proc/cpuinfo

processor    : 0

model name    : ARMv7 Processor rev 5 (v7l)

BogoMIPS    : 57.60★

Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

CPU implementer    : 0x41

CPU architecture: 7

CPU variant    : 0x0

CPU part    : 0xc07

CPU revision    : 5

::

・・・温度を監視し、UnixBench を完走させてみます。

------------------------------------------------------------------------
Benchmark Run: 土  7月 04 2015 15:44:51 - 16:13:14
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       14083711.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2200.7 MWIPS (9.1 s, 7 samples)
Execl Throughput                               1294.5 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         98062.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           30405.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        274125.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                              714775.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 100933.0 lps   (10.0 s, 7 samples)
Process Creation                               2531.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1739.2 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    238.2 lpm   (60.5 s, 2 samples)
System Call Overhead                        1538713.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   14083711.0   1206.8
Double-Precision Whetstone                       55.0       2200.7    400.1
Execl Throughput                                 43.0       1294.5    301.1
File Copy 1024 bufsize 2000 maxblocks          3960.0      98062.8    247.6
File Copy 256 bufsize 500 maxblocks            1655.0      30405.9    183.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     274125.7    472.6
Pipe Throughput                               12440.0     714775.2    574.6
Pipe-based Context Switching                   4000.0     100933.0    252.3
Process Creation                                126.0       2531.6    200.9
Shell Scripts (1 concurrent)                     42.4       1739.2    410.2
Shell Scripts (8 concurrent)                      6.0        238.2    396.9
System Call Overhead                          15000.0    1538713.1   1025.8
                                                                   ========
System Benchmarks Index Score                                         396.7

[root@pi2 UnixBench]# 

おおお。あがりました。とりあえず、この設定で遊びます。お仕事で使っているマシンとかは、この数字が7000とか1万とかなので、かわいい感じがしますが、とても立派な数字なんです。15年前くらいの2000年あたりは、サーバマシンといえども、200ちょいくらいしかなかったので。20万位したマシンで、その数字ですから。5000円くらいのPi2 でこの数字が出るというのは、とても立派なのです。

pi2 fedora22 その後

[root@localhost ~]# which dnf
-bash: which: コマンドが見つかりません
[root@localhost ~]# 

 

なんですと!

Minimal なだけに368 パッケージしか入っていません。dnf 使っていれますが、どうやら yum の部分を dnl にすればいいようです。とりあえず、入れてみます。

[root@localhost ~]# dnf install which
Last metadata expiration check performed 0:15:44 ago on Fri Jul  3 09:14:17 2015.
Dependencies resolved.
=====================================================================================================================================================
 Package                          アーキテクチャ                     バージョン                              リポジトリー                       容量
=====================================================================================================================================================
インストールしています:
 which                            armv7hl                            2.20-10.fc22                            fedora                             44 k

トランザクションの要約
=====================================================================================================================================================
インストール  1 Package

総ダウンロード容量: 44 k
インストール済み容量: 70 k
これでいいですか? [y/N]y
パッケージをダウンロードしています:
which-2.20-10.fc22.armv7hl.rpm                                                                                        37 kB/s |  44 kB     00:01    
-----------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                 8.0 kB/s |  44 kB     00:05     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  インストールしています: which-2.20-10.fc22.armv7hl                                                                                             1/1 
  Verifying             : which-2.20-10.fc22.armv7hl                                                                                             1/1 

インストール:
  which.armv7hl 2.20-10.fc22                                                                                                                         

完了しました!
[root@localhost ~]#

 

さてと、楽しみながら触りますか。ちょっと、蒸し暑いのでお風呂入ってきますか。すっきりしてやりますぞ。

tar も gcc も入っていないので、まずはあれこれ作業しながらないものを入れていきます。

 

とりあえず、UnixBench。ラズベリアンよりも遅い感じですかね?

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: localhost.localdomain: GNU/Linux
   OS: GNU/Linux -- 4.0.7-v7+ -- #801 SMP PREEMPT Tue Jun 30 18:38:23 BST 2015
   Machine: armv7l (armv7l)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 1: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 2: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 3: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   09:55:43 up 58 min,  1 user,  load average: 0.35, 0.27, 0.20; runlevel 3

------------------------------------------------------------------------
Benchmark Run: 金  7月 03 2015 09:55:43 - 10:23:51
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        2385350.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      364.8 MWIPS (9.9 s, 7 samples)
Execl Throughput                                362.2 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         44168.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           13376.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        129949.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              121003.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  18406.2 lps   (10.0 s, 7 samples)
Process Creation                                797.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    573.4 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    164.2 lpm   (60.3 s, 2 samples)
System Call Overhead                         274094.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2385350.1    204.4
Double-Precision Whetstone                       55.0        364.8     66.3
Execl Throughput                                 43.0        362.2     84.2
File Copy 1024 bufsize 2000 maxblocks          3960.0      44168.6    111.5
File Copy 256 bufsize 500 maxblocks            1655.0      13376.0     80.8
File Copy 4096 bufsize 8000 maxblocks          5800.0     129949.5    224.1
Pipe Throughput                               12440.0     121003.4     97.3
Pipe-based Context Switching                   4000.0      18406.2     46.0
Process Creation                                126.0        797.5     63.3
Shell Scripts (1 concurrent)                     42.4        573.4    135.2
Shell Scripts (8 concurrent)                      6.0        164.2    273.7
System Call Overhead                          15000.0     274094.8    182.7
                                                                   ========
System Benchmarks Index Score                                         113.2

------------------------------------------------------------------------
Benchmark Run: 金  7月 03 2015 10:23:51 - 10:52:09
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables        9503183.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1466.9 MWIPS (10.0 s, 7 samples)
Execl Throughput                                970.2 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         70550.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           20414.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        205565.3 KBps  (30.0 s, 2 samples)
Pipe Throughput                              479922.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  67560.2 lps   (10.0 s, 7 samples)
Process Creation                               1860.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1287.2 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    175.5 lpm   (61.0 s, 2 samples)
System Call Overhead                        1064369.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    9503183.1    814.3
Double-Precision Whetstone                       55.0       1466.9    266.7
Execl Throughput                                 43.0        970.2    225.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      70550.9    178.2
File Copy 256 bufsize 500 maxblocks            1655.0      20414.5    123.4
File Copy 4096 bufsize 8000 maxblocks          5800.0     205565.3    354.4
Pipe Throughput                               12440.0     479922.4    385.8
Pipe-based Context Switching                   4000.0      67560.2    168.9
Process Creation                                126.0       1860.7    147.7
Shell Scripts (1 concurrent)                     42.4       1287.2    303.6
Shell Scripts (8 concurrent)                      6.0        175.5    292.6
System Call Overhead                          15000.0    1064369.7    709.6
                                                                   ========
System Benchmarks Index Score                                         279.9

 

もう少し遊んでみます。

 

[root@localhost UnixBench]# sysctl -a
dev.scsi.logging_level = 0
fs.aio-max-nr = 65536
fs.aio-nr = 0
fs.binfmt_misc.status = enabled
fs.dentry-state = 97722    92070    45    0    0    0
fs.dir-notify-enable = 1
fs.epoll.max_user_watches = 334671
fs.file-max = 93880
fs.file-nr = 800    0    93880
fs.inode-nr = 18373    332
fs.inode-state = 18373    332    0    0    0    0    0
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
fs.lease-break-time = 45
fs.leases-enable = 1
fs.mqueue.msg_default = 10
fs.mqueue.msg_max = 10
fs.mqueue.msgsize_default = 8192
fs.mqueue.msgsize_max = 8192
fs.mqueue.queues_max = 256
fs.nfs.idmap_cache_timeout = 6
fs.nfs.nfs_callback_tcpport = 0
fs.nfs.nfs_congestion_kb = 31104
fs.nfs.nfs_mountpoint_timeout = 500
fs.nfs.nlm_grace_period = 0
fs.nfs.nlm_tcpport = 0
fs.nfs.nlm_timeout = 10
fs.nfs.nlm_udpport = 0
fs.nfs.nsm_local_state = 0
fs.nfs.nsm_use_hostnames = 0
fs.nr_open = 1048576
fs.overflowgid = 65534
fs.overflowuid = 65534
fs.pipe-max-size = 1048576
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
fs.quota.allocated_dquots = 0
fs.quota.cache_hits = 0
fs.quota.drops = 0
fs.quota.free_dquots = 0
fs.quota.lookups = 0
fs.quota.reads = 0
fs.quota.syncs = 1108
fs.quota.warnings = 1
fs.quota.writes = 0
fs.suid_dumpable = 0
fscache.object_max_active = 4
fscache.operation_max_active = 2
kernel.acct = 4    2    30
kernel.auto_msgmni = 0
kernel.cad_pid = 1
kernel.cap_last_cap = 37
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e
kernel.core_pipe_limit = 0
kernel.core_uses_pid = 1
kernel.ctrl-alt-del = 0
kernel.dmesg_restrict = 0
kernel.domainname = (none)
kernel.ftrace_dump_on_oops = 0
kernel.ftrace_enabled = 1
kernel.hostname = localhost.localdomain
kernel.hotplug = 
kernel.hung_task_check_count = 32768
kernel.hung_task_panic = 0
kernel.hung_task_timeout_secs = 120
kernel.hung_task_warnings = 10
kernel.keys.gc_delay = 300
kernel.keys.maxbytes = 20000
kernel.keys.maxkeys = 200
kernel.keys.root_maxbytes = 25000000
kernel.keys.root_maxkeys = 1000000
kernel.kptr_restrict = 0
kernel.max_lock_depth = 1024
kernel.modprobe = /sbin/modprobe
kernel.modules_disabled = 0
kernel.msgmax = 8192
kernel.msgmnb = 16384
kernel.msgmni = 32000
kernel.ngroups_max = 65536
kernel.osrelease = 4.0.7-v7+
kernel.ostype = Linux
kernel.overflowgid = 65534
kernel.overflowuid = 65534
kernel.panic = 0
kernel.panic_on_oops = 0
kernel.panic_on_warn = 0
kernel.perf_cpu_time_max_percent = 25
kernel.perf_event_max_sample_rate = 100000
kernel.perf_event_mlock_kb = 516
kernel.perf_event_paranoid = 1
kernel.pid_max = 32768
kernel.poweroff_cmd = /sbin/poweroff
kernel.print-fatal-signals = 0
kernel.printk = 7    4    1    7
kernel.printk_delay = 0
kernel.printk_ratelimit = 5
kernel.printk_ratelimit_burst = 10
kernel.pty.max = 4096
kernel.pty.nr = 2
kernel.pty.reserve = 1024
kernel.random.boot_id = f7b46809-df60-44f9-b951-d19475845c6c
kernel.random.entropy_avail = 1283
kernel.random.poolsize = 4096
kernel.random.read_wakeup_threshold = 64
kernel.random.urandom_min_reseed_secs = 60
kernel.random.uuid = a430aadc-542a-4ae4-baf6-ea9e00d8c2f2
kernel.random.write_wakeup_threshold = 896
kernel.randomize_va_space = 2
kernel.real-root-dev = 0
kernel.sched_autogroup_enabled = 1
kernel.sched_child_runs_first = 0
kernel.sched_domain.cpu0.domain0.busy_factor = 32
kernel.sched_domain.cpu0.domain0.busy_idx = 2
kernel.sched_domain.cpu0.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu0.domain0.flags = 4143
kernel.sched_domain.cpu0.domain0.forkexec_idx = 0
kernel.sched_domain.cpu0.domain0.idle_idx = 1
kernel.sched_domain.cpu0.domain0.imbalance_pct = 125
kernel.sched_domain.cpu0.domain0.max_interval = 8
kernel.sched_domain.cpu0.domain0.max_newidle_lb_cost = 27812
kernel.sched_domain.cpu0.domain0.min_interval = 4
kernel.sched_domain.cpu0.domain0.name = DIE
kernel.sched_domain.cpu0.domain0.newidle_idx = 0
kernel.sched_domain.cpu0.domain0.wake_idx = 0
kernel.sched_domain.cpu1.domain0.busy_factor = 32
kernel.sched_domain.cpu1.domain0.busy_idx = 2
kernel.sched_domain.cpu1.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu1.domain0.flags = 4143
kernel.sched_domain.cpu1.domain0.forkexec_idx = 0
kernel.sched_domain.cpu1.domain0.idle_idx = 1
kernel.sched_domain.cpu1.domain0.imbalance_pct = 125
kernel.sched_domain.cpu1.domain0.max_interval = 8
kernel.sched_domain.cpu1.domain0.max_newidle_lb_cost = 49157
kernel.sched_domain.cpu1.domain0.min_interval = 4
kernel.sched_domain.cpu1.domain0.name = DIE
kernel.sched_domain.cpu1.domain0.newidle_idx = 0
kernel.sched_domain.cpu1.domain0.wake_idx = 0
kernel.sched_domain.cpu2.domain0.busy_factor = 32
kernel.sched_domain.cpu2.domain0.busy_idx = 2
kernel.sched_domain.cpu2.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu2.domain0.flags = 4143
kernel.sched_domain.cpu2.domain0.forkexec_idx = 0
kernel.sched_domain.cpu2.domain0.idle_idx = 1
kernel.sched_domain.cpu2.domain0.imbalance_pct = 125
kernel.sched_domain.cpu2.domain0.max_interval = 8
kernel.sched_domain.cpu2.domain0.max_newidle_lb_cost = 24479
kernel.sched_domain.cpu2.domain0.min_interval = 4
kernel.sched_domain.cpu2.domain0.name = DIE
kernel.sched_domain.cpu2.domain0.newidle_idx = 0
kernel.sched_domain.cpu2.domain0.wake_idx = 0
kernel.sched_domain.cpu3.domain0.busy_factor = 32
kernel.sched_domain.cpu3.domain0.busy_idx = 2
kernel.sched_domain.cpu3.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu3.domain0.flags = 4143
kernel.sched_domain.cpu3.domain0.forkexec_idx = 0
kernel.sched_domain.cpu3.domain0.idle_idx = 1
kernel.sched_domain.cpu3.domain0.imbalance_pct = 125
kernel.sched_domain.cpu3.domain0.max_interval = 8
kernel.sched_domain.cpu3.domain0.max_newidle_lb_cost = 67147
kernel.sched_domain.cpu3.domain0.min_interval = 4
kernel.sched_domain.cpu3.domain0.name = DIE
kernel.sched_domain.cpu3.domain0.newidle_idx = 0
kernel.sched_domain.cpu3.domain0.wake_idx = 0
kernel.sched_latency_ns = 18000000
kernel.sched_migration_cost_ns = 500000
kernel.sched_min_granularity_ns = 2250000
kernel.sched_nr_migrate = 32
kernel.sched_rr_timeslice_ms = 10
kernel.sched_rt_period_us = 1000000
kernel.sched_rt_runtime_us = 950000
kernel.sched_shares_window_ns = 10000000
kernel.sched_time_avg_ms = 1000
kernel.sched_tunable_scaling = 1
kernel.sched_wakeup_granularity_ns = 3000000
kernel.sem = 32000    1024000000    500    32000
kernel.shm_rmid_forced = 0
kernel.shmall = 268435456
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.stack_tracer_enabled = 0
kernel.sysctl_writes_strict = 0
kernel.sysrq = 16
kernel.tainted = 0
kernel.threads-max = 14682
kernel.timer_migration = 1
kernel.traceoff_on_warning = 0
kernel.tracepoint_printk = 0
kernel.usermodehelper.bset = 4294967295    63
kernel.usermodehelper.inheritable = 4294967295    63
kernel.version = #801 SMP PREEMPT Tue Jun 30 18:38:23 BST 2015
net.core.busy_poll = 0
net.core.busy_read = 0
net.core.default_qdisc = fq_codel
net.core.dev_weight = 64
net.core.flow_limit_cpu_bitmap = 0
net.core.flow_limit_table_len = 4096
net.core.message_burst = 10
net.core.message_cost = 5
net.core.netdev_budget = 300
net.core.netdev_max_backlog = 1000
net.core.netdev_rss_key = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
net.core.netdev_tstamp_prequeue = 1
net.core.optmem_max = 10240
net.core.rmem_default = 163840
net.core.rmem_max = 163840
net.core.rps_sock_flow_entries = 0
net.core.somaxconn = 128
net.core.tstamp_allow_data = 1
net.core.warnings = 0
net.core.wmem_default = 163840
net.core.wmem_max = 163840
net.core.xfrm_acq_expires = 30
net.core.xfrm_aevent_etime = 10
net.core.xfrm_aevent_rseqth = 2
net.core.xfrm_larval_drop = 1
net.ipv4.conf.all.accept_local = 0
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_accept = 0
net.ipv4.conf.all.arp_announce = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_notify = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.conf.all.disable_policy = 0
net.ipv4.conf.all.disable_xfrm = 0
net.ipv4.conf.all.force_igmp_version = 0
net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.all.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.medium_id = 0
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.all.proxy_arp_pvlan = 0
net.ipv4.conf.all.route_localnet = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.all.shared_media = 1
net.ipv4.conf.all.src_valid_mark = 0
net.ipv4.conf.all.tag = 0
net.ipv4.conf.default.accept_local = 0
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.arp_accept = 0
net.ipv4.conf.default.arp_announce = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.default.arp_notify = 0
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.default.disable_policy = 0
net.ipv4.conf.default.disable_xfrm = 0
net.ipv4.conf.default.force_igmp_version = 0
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.default.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.default.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.medium_id = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.proxy_arp_pvlan = 0
net.ipv4.conf.default.route_localnet = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.secure_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.default.shared_media = 1
net.ipv4.conf.default.src_valid_mark = 0
net.ipv4.conf.default.tag = 0
net.ipv4.conf.eth0.accept_local = 0
net.ipv4.conf.eth0.accept_redirects = 1
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.eth0.arp_accept = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.eth0.arp_notify = 0
net.ipv4.conf.eth0.bootp_relay = 0
net.ipv4.conf.eth0.disable_policy = 0
net.ipv4.conf.eth0.disable_xfrm = 0
net.ipv4.conf.eth0.force_igmp_version = 0
net.ipv4.conf.eth0.forwarding = 0
net.ipv4.conf.eth0.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.eth0.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.eth0.log_martians = 0
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth0.medium_id = 0
net.ipv4.conf.eth0.promote_secondaries = 0
net.ipv4.conf.eth0.proxy_arp = 0
net.ipv4.conf.eth0.proxy_arp_pvlan = 0
net.ipv4.conf.eth0.route_localnet = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.secure_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
net.ipv4.conf.eth0.shared_media = 1
net.ipv4.conf.eth0.src_valid_mark = 0
net.ipv4.conf.eth0.tag = 0
net.ipv4.conf.lo.accept_local = 0
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.lo.accept_source_route = 1
net.ipv4.conf.lo.arp_accept = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_notify = 0
net.ipv4.conf.lo.bootp_relay = 0
net.ipv4.conf.lo.disable_policy = 1
net.ipv4.conf.lo.disable_xfrm = 1
net.ipv4.conf.lo.force_igmp_version = 0
net.ipv4.conf.lo.forwarding = 0
net.ipv4.conf.lo.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.lo.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.lo.log_martians = 0
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.medium_id = 0
net.ipv4.conf.lo.promote_secondaries = 0
net.ipv4.conf.lo.proxy_arp = 0
net.ipv4.conf.lo.proxy_arp_pvlan = 0
net.ipv4.conf.lo.route_localnet = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.conf.lo.shared_media = 1
net.ipv4.conf.lo.src_valid_mark = 0
net.ipv4.conf.lo.tag = 0
net.ipv4.fwmark_reflect = 0
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_errors_use_inbound_ifaddr = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.icmp_msgs_burst = 50
net.ipv4.icmp_msgs_per_sec = 1000
net.ipv4.icmp_ratelimit = 1000
net.ipv4.icmp_ratemask = 6168
net.ipv4.igmp_max_memberships = 20
net.ipv4.igmp_max_msf = 10
net.ipv4.igmp_qrv = 2
net.ipv4.inet_peer_maxttl = 600
net.ipv4.inet_peer_minttl = 120
net.ipv4.inet_peer_threshold = 65664
net.ipv4.ip_default_ttl = 64
net.ipv4.ip_dynaddr = 0
net.ipv4.ip_early_demux = 1
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_use_pmtu = 0
net.ipv4.ip_local_port_range = 32768    61000
net.ipv4.ip_local_reserved_ports = 
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.ip_nonlocal_bind = 0
net.ipv4.ipfrag_high_thresh = 4194304
net.ipv4.ipfrag_low_thresh = 3145728
net.ipv4.ipfrag_max_dist = 64
net.ipv4.ipfrag_secret_interval = 0
net.ipv4.ipfrag_time = 30
net.ipv4.neigh.default.anycast_delay = 100
net.ipv4.neigh.default.app_solicit = 0
net.ipv4.neigh.default.base_reachable_time_ms = 30000
net.ipv4.neigh.default.delay_first_probe_time = 5
net.ipv4.neigh.default.gc_interval = 30
net.ipv4.neigh.default.gc_stale_time = 60
net.ipv4.neigh.default.gc_thresh1 = 128
net.ipv4.neigh.default.gc_thresh2 = 512
net.ipv4.neigh.default.gc_thresh3 = 1024
net.ipv4.neigh.default.locktime = 100
net.ipv4.neigh.default.mcast_solicit = 3
net.ipv4.neigh.default.proxy_delay = 80
net.ipv4.neigh.default.proxy_qlen = 64
net.ipv4.neigh.default.retrans_time_ms = 1000
net.ipv4.neigh.default.ucast_solicit = 3
net.ipv4.neigh.default.unres_qlen = 34
net.ipv4.neigh.default.unres_qlen_bytes = 65536
net.ipv4.neigh.eth0.anycast_delay = 100
net.ipv4.neigh.eth0.app_solicit = 0
net.ipv4.neigh.eth0.base_reachable_time_ms = 30000
net.ipv4.neigh.eth0.delay_first_probe_time = 5
net.ipv4.neigh.eth0.gc_stale_time = 60
net.ipv4.neigh.eth0.locktime = 100
net.ipv4.neigh.eth0.mcast_solicit = 3
net.ipv4.neigh.eth0.proxy_delay = 80
net.ipv4.neigh.eth0.proxy_qlen = 64
net.ipv4.neigh.eth0.retrans_time_ms = 1000
net.ipv4.neigh.eth0.ucast_solicit = 3
net.ipv4.neigh.eth0.unres_qlen = 34
net.ipv4.neigh.eth0.unres_qlen_bytes = 65536
net.ipv4.neigh.lo.anycast_delay = 100
net.ipv4.neigh.lo.app_solicit = 0
net.ipv4.neigh.lo.base_reachable_time_ms = 30000
net.ipv4.neigh.lo.delay_first_probe_time = 5
net.ipv4.neigh.lo.gc_stale_time = 60
net.ipv4.neigh.lo.locktime = 100
net.ipv4.neigh.lo.mcast_solicit = 3
net.ipv4.neigh.lo.proxy_delay = 80
net.ipv4.neigh.lo.proxy_qlen = 64
net.ipv4.neigh.lo.retrans_time_ms = 1000
net.ipv4.neigh.lo.ucast_solicit = 3
net.ipv4.neigh.lo.unres_qlen = 34
net.ipv4.neigh.lo.unres_qlen_bytes = 65536
net.ipv4.netfilter.ip_conntrack_buckets = 15360
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_count = 2
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
net.ipv4.netfilter.ip_conntrack_max = 59264
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.ping_group_range = 1    0
net.ipv4.route.error_burst = 500
net.ipv4.route.error_cost = 100
net.ipv4.route.gc_elasticity = 8
net.ipv4.route.gc_interval = 60
net.ipv4.route.gc_min_interval = 0
net.ipv4.route.gc_min_interval_ms = 500
net.ipv4.route.gc_thresh = -1
net.ipv4.route.gc_timeout = 300
net.ipv4.route.max_size = 2147483647
net.ipv4.route.min_adv_mss = 256
net.ipv4.route.min_pmtu = 552
net.ipv4.route.mtu_expires = 600
net.ipv4.route.redirect_load = 2
net.ipv4.route.redirect_number = 9
net.ipv4.route.redirect_silence = 2048
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_allowed_congestion_control = cubic reno
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_autocorking = 1
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_base_mss = 512
net.ipv4.tcp_challenge_ack_limit = 100
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_early_retrans = 3
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fack = 1
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_fastopen_key = 00000000-00000000-00000000-00000000
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_frto = 2
net.ipv4.tcp_fwmark_accept = 0
net.ipv4.tcp_invalid_ratelimit = 500
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_limit_output_bytes = 131072
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_max_orphans = 4096
net.ipv4.tcp_max_reordering = 300
net.ipv4.tcp_max_syn_backlog = 128
net.ipv4.tcp_max_tw_buckets = 4096
net.ipv4.tcp_mem = 22215    29620    44430
net.ipv4.tcp_min_tso_segs = 2
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_notsent_lowat = -1
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_retrans_collapse = 1
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rmem = 4096    87380    6291456
net.ipv4.tcp_sack = 1
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_thin_dupack = 0
net.ipv4.tcp_thin_linear_timeouts = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096    16384    4194304
net.ipv4.tcp_workaround_signed_windows = 0
net.ipv4.udp_mem = 22215    29620    44430
net.ipv4.udp_rmem_min = 4096
net.ipv4.udp_wmem_min = 4096
net.ipv4.xfrm4_gc_thresh = 32768
net.ipv6.anycast_src_echo_reply = 0
net.ipv6.auto_flowlabels = 0
net.ipv6.bindv6only = 0
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_from_local = 0
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.ndisc_notify = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitations = 3
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_from_local = 0
net.ipv6.conf.default.accept_ra_mtu = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.default.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.ndisc_notify = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitations = 3
net.ipv6.conf.default.suppress_frag_ndisc = 1
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 0
net.ipv6.conf.eth0.accept_ra_from_local = 0
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 0
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.accept_source_route = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.force_tllao = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.max_addresses = 16
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.ndisc_notify = 0
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry = 3
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitations = 3
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefered_lft = 86400
net.ipv6.conf.eth0.temp_valid_lft = 604800
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_from_local = 0
net.ipv6.conf.lo.accept_ra_mtu = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.lo.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.ndisc_notify = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitations = 3
net.ipv6.conf.lo.suppress_frag_ndisc = 1
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.flowlabel_consistency = 1
net.ipv6.fwmark_reflect = 0
net.ipv6.icmp.ratelimit = 1000
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60
net.ipv6.mld_max_msf = 64
net.ipv6.mld_qrv = 2
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.unres_qlen = 34
net.ipv6.neigh.default.unres_qlen_bytes = 65536
net.ipv6.neigh.eth0.anycast_delay = 100
net.ipv6.neigh.eth0.app_solicit = 0
net.ipv6.neigh.eth0.base_reachable_time_ms = 30000
net.ipv6.neigh.eth0.delay_first_probe_time = 5
net.ipv6.neigh.eth0.gc_stale_time = 60
net.ipv6.neigh.eth0.locktime = 0
net.ipv6.neigh.eth0.mcast_solicit = 3
net.ipv6.neigh.eth0.proxy_delay = 80
net.ipv6.neigh.eth0.proxy_qlen = 64
net.ipv6.neigh.eth0.retrans_time_ms = 1000
net.ipv6.neigh.eth0.ucast_solicit = 3
net.ipv6.neigh.eth0.unres_qlen = 34
net.ipv6.neigh.eth0.unres_qlen_bytes = 65536
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.unres_qlen = 34
net.ipv6.neigh.lo.unres_qlen_bytes = 65536
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.gc_timeout = 60
net.ipv6.route.max_size = 4096
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.mtu_expires = 600
net.ipv6.xfrm6_gc_thresh = 32768
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_buckets = 15360
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_count = 2
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_expect_max = 228
net.netfilter.nf_conntrack_frag6_high_thresh = 4194304
net.netfilter.nf_conntrack_frag6_low_thresh = 3145728
net.netfilter.nf_conntrack_frag6_timeout = 60
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_helper = 1
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_icmpv6_timeout = 30
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_max = 59264
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_timestamp = 0
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_log.0 = NONE
net.netfilter.nf_log.1 = NONE
net.netfilter.nf_log.10 = NONE
net.netfilter.nf_log.11 = NONE
net.netfilter.nf_log.12 = NONE
net.netfilter.nf_log.2 = NONE
net.netfilter.nf_log.3 = NONE
net.netfilter.nf_log.4 = NONE
net.netfilter.nf_log.5 = NONE
net.netfilter.nf_log.6 = NONE
net.netfilter.nf_log.7 = NONE
net.netfilter.nf_log.8 = NONE
net.netfilter.nf_log.9 = NONE
net.nf_conntrack_max = 59264
net.unix.max_dgram_qlen = 10
vm.admin_reserve_kbytes = 8192
vm.block_dump = 0
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
vm.drop_caches = 0
vm.extfrag_threshold = 500
vm.laptop_mode = 0
vm.legacy_va_layout = 0
vm.lowmem_reserve_ratio = 32
vm.max_map_count = 65530
vm.min_free_kbytes = 3894
vm.mmap_min_addr = 4096
vm.nr_pdflush_threads = 0
vm.oom_dump_tasks = 1
vm.oom_kill_allocating_task = 0
vm.overcommit_kbytes = 0
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.page-cluster = 3
vm.panic_on_oom = 0
vm.percpu_pagelist_fraction = 0
vm.stat_interval = 1
vm.swappiness = 60
vm.user_reserve_kbytes = 29417
vm.vfs_cache_pressure = 100
[root@localhost UnixBench]#