vm_stat/top

Macにおいて表題を。以前にも同じようなものを書いたっぽい。

■ 環境

  • Mac OSX El Capitan

■ vm_stat

GoogleChromeが固まったので確認。

$ vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                                4918.
Pages active:                            834215.
Pages inactive:                          802857.
Pages speculative:                          177.
Pages throttled:                              0.
Pages wired down:                       2326949.
Pages purgeable:                         170970.
"Translation faults":                1680467070.
Pages copy-on-write:                   65844133.
Pages zero filled:                    871158825.
Pages reactivated:                    150022170.
Pages purged:                          95813637.
File-backed pages:                       255390.
Anonymous pages:                        1381859.
Pages stored in compressor:            16425328.
Pages occupied by compressor:            223155.
Decompressions:                       194897209.
Compressions:                         258262171.
Pageins:                               21515902.
Pageouts:                                611307.
Swapins:                               88342023.
Swapouts:                              92253447.
$

free“があまりにも少なすぎる…。

`top`でメモリ順にソートをするとやはりGoogleChromeが大量にメモリを消費しているようであるので強制終了した。すると下記のように開放された。

$ vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                             2137778.
Pages active:                            360003.
Pages inactive:                          540745.
Pages speculative:                         1517.
Pages throttled:                              0.
Pages wired down:                        963769.
Pages purgeable:                         167856.
"Translation faults":                1680794674.
Pages copy-on-write:                   65854583.
Pages zero filled:                    871286436.
Pages reactivated:                    150042129.
Pages purged:                          95813647.
File-backed pages:                       256810.
Anonymous pages:                         645455.
Pages stored in compressor:             1598626.
Pages occupied by compressor:            188144.
Decompressions:                       194923284.
Compressions:                         258276345.
Pageins:                               21523440.
Pageouts:                                611406.
Swapins:                               88715881.
Swapouts:                              92283435.
$

とりあえず動くようになったので満足。

以上。

■ 関連

Macでの使用メモリ量を調べる

Posted in: Mac | Tagged:

nginx + ModSecurity

表題の通り。nginxをソースコンパイルしてModSecurityを組み込む。

■ 環境

  • nginx 1.12.0
  • ModSecurity 2.9
  • CentOS 6.7

■ ModSecurity

ModSecurity: Open Source Web Application Firewall
http://www.modsecurity.org/

nginxへのインストールは下記を参照する。

Installion for NGINX
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Mannual#Installation_for_NGINX

まずは依存パッケージをインストールする。

$ sudo yum install httpd httpd-devel pcre pcre-devel libxml2-devel

httpd“自体もインストールしなければならないのか…。”pcre“あたりは理解できるが…。ソースはModSecurityのページから取得する。現在の最新versionは”2.9“のようである。

$ wget https://www.modsecurity.org/tarball/2.9/modsecurity-2.9.tar.gz

展開して`configure`。

$ tar zxf modsecurity-2.9.tar.gz
$ cd modsecurity-2.9
$ ./configure --enable-standalone --disable-mlogc
  :
$ make
  :
$

あとはソースコンパイルだけである。先日のエントリのようにやる。

$ cd nginx-1.12.0
$ configure --add-module=../modsecurity-2.9/nginx/modsecurity
  :
$ make
  :
$ sudo make install
  :
$

CRSとかも入れないと意味無いが、とりあえず今日はここまで。

以上。

■ 関連

nginxをソースインストール

shuf

表題のコマンドを知ったのでメモ。

■ 環境

  • Amazon Linux

■ shuf

どのパッケージに入っているのか確認。

$ which shuf
/usr/bin/shuf
$ rpm -qf /usr/bin/shuf
coreutils-8.22-15.52.amzn1.x86_64
$

ヘルプを見てみる。

$ shuf --help
使用法: shuf [OPTION]... [FILE]
または: shuf -e [OPTION]... [ARG]...
または: shuf -i LO-HI [OPTION]...
Write a random permutation of the input lines to standard output.

Mandatory arguments to long options are mandatory for short options too.
  -e, --echo                treat each ARG as an input line
  -i, --input-range=LO-HI   treat each number LO through HI as an input line
  -n, --head-count=COUNT    output at most COUNT lines
  -o, --output=FILE         write result to FILE instead of standard output
      --random-source=FILE  get random bytes from FILE
  -r, --repeat              output lines can be repeated
  -z, --zero-terminated     end lines with 0 byte, not newline
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

ファイルの指定がなかったり, - であった場合, 標準入力から読み込みます.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
shuf の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
完全な文書を参照する場合は info coreutils 'shuf invocation' を実行してください。
$

実際に試してみる。10から20の間の数をシャッフルする。

$ shuf -i 10-20
13
17
20
10
15
12
18
14
11
19
16
$

なるほど。ではこの中から1つを表示。

$ shuf -i 10-20 -n 1
14
$ shuf -i 10-20 -n 1
19
$ shuf -i 10-20 -n 1
11
$

実行する毎にランダムにシャッフルした結果の1つを取得できる。単純にランダムな数値を欲しい時に使えそうだ。

以上。

スプレッドシートの斜め罫線

表題をやりたかったのだが…。単なるメモである。

■ 環境

  • Google スプレッドシート

■ 罫線

Excelでいうところの下記の設定である。

これをGoogleのスプレッドシートで実現したく探し回っていたのだが見つけられず…。Googleで検索してとある知恵袋系サイトの回答によると、どうやらスプレッドシートには機能として存在しないらしい。残念。

以上。

/vagrantのマウントに失敗 – その2

表題の通り。また最近使っていて同じ現象(?)に当たったので、以前にも書いたのと似たようなものだけど書いておく。

■ 環境

  • Vagrant 1.9.1
  • Mac OSX El Capitan

■ bento/centos-6.7

CentOS 6“のVMを使いたくて下記boxを利用している。

Vagrant box bento/centos-6.7 | Atlas by HashiCorp
https://atlas.hashicorp.com/bento/boxes/centos-6.7

このboxを起動すると、いつも下記のような黄色いメッセージと最後に赤いメッセージで起動に失敗となってしまう。複数のVMを起動しようとしてるときは、最初のVMで失敗してしまうので後続が起動してくれない。

$ vagrant up centos67
  :
[cent67] GuestAdditions versions on your host (5.1.16) and guest (5.0.20) do not match.
  :
Installing Virtualbox Guest Additions 5.1.16 - guest version is 5.0.20
  :
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   5.0.20
VBoxService inside the vm claims: 5.1.16
Going on, assuming VBoxService is correct...
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   5.0.20
VBoxService inside the vm claims: 5.1.16
Going on, assuming VBoxService is correct...
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   5.0.20
VBoxService inside the vm claims: 5.1.16
Going on, assuming VBoxService is correct...
Restarting VM to apply changes...
  :
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=500,gid=500 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

$

/vagrant“はもちろんマウントできていない。VM側の”Guest Addition“が古いのが原因のようである。しかし”bento/centos-6.7“のversionはこれ以上新しいものはリリースされていない。

$ vagrant box list
bento/centos-6.7 (virtualbox, 2.2.7)
centos/7         (virtualbox, 1608.02)
ubuntu/trusty64  (virtualbox, 20170222.0.0)
ubuntu/xenial64  (virtualbox, 20170331.0.0)
$

状況を確認する。プラグイン。

$ vagrant plugin list
vagrant-share (1.1.6, system)
vagrant-vbguest (0.13.0)
$

vbguest“のプラグインが新しくなっていないか?と思い確認。

$ vagrant plugin update vagrant-vbguest
Updating plugins: vagrant-vbguest. This may take a few minutes...
All plugins are up to date.
$

`update`対象は無いようである。”vbguest“の状態を確認する。

$ vagrant vbguest cent67 --status
[cent67] No installation found.
$
$ vagrant vbguest cent67
[cent67] No installation found.
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: mirror.qoxy.com
 * updates: mirror.vodien.com
No package kernel-devel-2.6.32-573.el6.x86_64 available.
Package gcc-4.4.7-18.el6.x86_64 already installed and latest version
Package binutils-2.20.51.0.2-5.47.el6_9.1.x86_64 already installed and latest version
Package 1:make-3.81-23.el6.x86_64 already installed and latest version
Package 4:perl-5.10.1-144.el6.x86_64 already installed and latest version
Package bzip2-1.0.5-7.el6_0.x86_64 already installed and latest version
Nothing to do
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Installing Virtualbox Guest Additions 5.1.16 - guest version is unknown
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.16 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.16 of VirtualBox Guest Additions...
vboxadd.sh: Stopping VirtualBox Additions.
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Building Guest Additions kernel modules.
Failed to set up service vboxadd, please check the log file
/var/log/VBoxGuestAdditions.log for details.

$
$ vagrant vbguest cent67 --status
[cent67] No installation found.
$

状況は変わらない。以前のエントリの通りログインして操作することにする。

$ vagrant ssh cent67
[vagrant@cent67 ~]$ sudo yum update

VMを再起動してみる。

$ vagrant reload cent67
  :
[cent67] No installation found.
  :
Installing Virtualbox Guest Additions 5.1.16 - guest version is unknown
  :
$

気になるメッセージはまた表示されているが、マウントはしてくれた。

一度起動して対応して…と、最初の起動時からは解決できていないので根本解決にはなっていないが仕方が無い。

以上。

■ 関連

VirtualBoxの/vagrantがマウントに失敗