Windows10に Node.jsを導入する

インストールは簡単

Node.js サイトにアクセスすると、最新のmsi インストーラが掲載されているので、それをダウンロードしてインストールするだけです。私はLTS版をインストールしました。

セットアップ PROXY

会社でnode.jsを使う場合はproxy サーバーの設定が必要になる。コマンドプロンプトよりnpmコマンドで環境変数に定義する。

> npm config set proxy http://<ユーザー名>:<パスワード>@<PROXYサーバーアドレス>:<ポート番号>
> npm config set https-proxy http://<ユーザー名>:<パスワード>@<PROXYサーバーアドレス>:<ポート番号>

セットアップ npmを最新にする

最新にしておかないと、オメーのnpm古すぎ!とか怒られることあるので、パッケージ管理ツールのnpmを最新にします。

> npm install -g npm
:
> npm rebuild
> npm --version
6.11.3

 

誤自宅のメモリ事情

今、メモリ価格は底値をついた

先週末までメモリ価格は底値でした。5月連休で2枚セットで約26000円したメモリが18000円まで下がっていました。ところが先週末は反転して19000円に上昇です。買うなら今です。

私が購入したものではないですが、主にゲーム用OCメモリもkakaku.comによれば同じような形で価格遷移しています。

誤自宅サーバーで使うメモリ

光らないメモリ。メモリを光らせてどうするのさ。非発光原理主義者としては基本要件ですが、それとは別にZen2が待ちきれなくて 5月連休にRyzen7 2700XとX470アーキでメモリにはG-SKILLの3200MHzを購入しました。正直なところですと、Zen2アーキがでたとしてもRHEL7のカーネルで動くとは思えなかったので。

Ryzenの場合はメモリ性能がシステム全体の性能に影響します。リンク先の DDR4 Memory Scaling Performance with Ryzen 7 2700X on the AMD X470 Platform ベンチマークを見てください。メモリクロックが3000MHzを境界に性能差があきらかになっています。購入時には是非とも3000MHz以上のものをチョイスしたいところですが、シングルランクとデュアルランクという区別と、その区別毎に動作可能最大周波数が異なるそうです。
誤自宅サーバーを組む場合は全メモリスロットに挿すだろうし、可能な限りの大容量で組みますのでなかなか難しいです。今回のアーキですと4枚挿しで1枚あたり16GBのメモリを入れたいところですが、4枚挿しの場合のクロックはシングルランクのメモリでも2133MHzまでしか標準スペックです。容量を犠牲にして2枚挿しでマザーボードが6層基板であれば2933MHzまでとか。ふむ。3000MHz以上はつまりOCですので安定稼働は優先課題から除外します。容量と性能優先です。

購入品 G.Skill F4-3200C16D-32GSXWB を2セット

メモリのスペックは以下の通りです。これを2セット、4枚挿入しています。

Memory Type DDR4
Capacity 32GB (16GBx2)
Multi-Channel Kit Dual Channel Kit
Tested Speed 3200MHz  PC4-25600
Tested Latency 16-18-18-38-2N
Tested Voltage 1.35V
SPD Speed2133MHz
SPD Voltage 1.20V

マザーボードの設定を変更してSPDなど無視して額面どおりに動かす設定にしました。1.35Vで3200MHzにして、ついでにCPUクロックも全8コア4.1GHz固定にしています。CPUクーラーは虎徹2にしました。安定稼働は未判断ですが2週間程度は連続稼働できています。

参考までにマザーボードはASUSのPRIME X470-PROにしています。これを購入する前にASRockのMASTER SLIを購入したのですが、痛恨のミスでPCIeスロットが2本しか搭載していないのを確認しておらず、急きょ購入しました。RAIDアレイボードと10GbEのNICがあり、これにビデオボードを挿す必要があるので16レーン形状のスロットが3本必要です。

X470-PROはPCIe の3本目がGen2 でレーン数4本と貧弱ではあるのですが、スロット形状は16レーンなので、再貧弱ビデオボードを挿すことが可能です。たとえば表示するだけなら1スロット幅で搭載できるGT1300です。サーバーでMLをするわけでもないのでこれで十分です。GNOMEたちあげてChromeからYouTubeも閲覧できます。

今、この構成にSATAのSSDを取り除いて、NVMEのSSDを搭載して性能向上を図ろうとしています。NVMeをそれもLinuxで扱うのは初めてだったのでそのあたりの技術的な情報は後日報告します。

CISCO CatalystでLAG(EtherChannel)を設定してNETGEAR L2SW xs708Eと対向する

L2 EtherChannelの設定

自宅では1GbEと10GbEのネットワークセグメントの橋渡しにCiscoのCatalyst 3750G-24TSを使っています。ws-c3750g-24ts-1uっていう奴ですね。もうEOLで大古ですが家庭内のL3SWとして1GbEならこれで十分です。オークションで2万円以下で中古業者から購入できます。CCNA勉強用にも最適じゃないでしょうか。

Switch間の接続は家庭内なので切れたりはしませんが、高速道路でいうところの複数車線の性能がでる可能性があるのでLAG(CiscoではEtherChannelと呼ぶ)を設定します。リンク速度が最大で2Gbps (1対向ではなく複数のホスト対向の合計)になります。こういったLAGにはLACPを使いますが私が所有する対向側のL2SWがstatic LAGのみサポートとのことで、教科書どおりの綺麗な設定ではなくなっています。

対向先の10GbEのポートを2つも使ってMAX 2Gbpsとは、なんて贅沢な設定なんだ!

ポイント

  • L3SWですがEtherChannelはL2の定義です。
  • 複数のポートを同時に定義して束ねる(チャネル化する)のでrange指定します。
  • 組んだ設定はPort-channelとしてインターフェース定義します。
  • 対向のNETGEAR L2SWのLAGはスタティック・リンク・アグリゲーションのためLACP(IEEE802.3ad)は使えません。強制的にチャネルさせます。(mode on)
  • 対向はCISCO製品ではないので独自のDTPは送信しないようにnonegosiateにします。しなくてもいいですけれどね。
  • 今回の構成は複数のVLANを含みません。Switch間接続に複数のVLANを通す場合は 802.1qとtrunk設定が必要です。ポートVLAN-IDは20とします。対向先は10GbEで別セグメントとして運用しているのだ!
  • 設定するポートはint gig1/0/23 と24で作成するPort-channelは6とします。
  • no shutdownは忘れがち
  • 終わったらwriteしとこうな!

conf t

l3sw(config) # interface range gigabitethernet 1/0/23 -24
l3sw(config-if-range) # switchport access vlan 20
l3sw(config-if-range) # switchport mode access
l3sw(config-if-range) # switchport nonegotiate
l3sw(config-if-range) # no shutdown
l3sw(config-if-range) #
channel-group 6 mode on
l3sw(config-if-range) # exit

CentOS 7.6でPHP 5.6を扱う

CentOS 7.6ではPHPは5.4が標準

PHP 5.6のEOLは2019年なので残り僅かだが、CentOS 7.6では5.4が標準である。セキュリティ問題はバックポートされているので心配ないが、バージョン番号だけをみてインストール可否をしているパッケージがあるので(たとえばWordpress)、とりあえず5.6にあげておきたい。最新はPHP 7.1ですかね。epelのレポジトリをインストールされていること前提で手順を進めます。

レポジトリをインストール
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

ポイント:remiのレポジトリはデフォルトでdisableになっているので利用時は enablerepoする。
PHP5.6がレポジトリにあるか確認
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
ずらっとでてくればOK

ではインストール
ポイント:"epelもenablerepoにしている" 依存するライブラリがepelにあるのだ(libmcrypt)
# yum install --enablerepo=epel --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

バージョンアップされていることを確認
# php --version
PHP 5.6.40 (cli) (built: Apr 30 2019 11:35:35) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

ゼンハイザー GSX 1000の7.1chの設定

フォーマットがデバイスにサポートされていません

メーカーFAQのPDFには載っているのだが、日本語ではないのでGoogle検索にうまくひっかからないようだ。ゼンハイザー GSX 1000を用いてスピーカーを7.1chオーディオに構成しようとすると「フォーマットがデバイスにサポートされていません」と表示される。これを回避する手順を記す。自分用メモでもある。

  1. タスクトレイのスピーカーを右クリックして「サウンド」を選択する
  2. サウンドの「再生タブ」でHeadset Earphoneが「GSX 1000 Communication Audio」で「規定の通信デバイス」になっていることを確認する
  3. サウンドの「再生タブ」でスピーカーが「GSX 1000 Main Audio」で「規定のデバイス」になっていることを確認する
  4. 「スピーカー」を選択し 「プロパティ」を選択する
  5. スピーカーのプロパティで「詳細」タブを選択し、規定の形式として「16ビット、44100 Hz(CDの音質)」を選択し「OK」を選択する
  6. サウンドの再生タブで「構成」を選択し、「7.1 サラウンド」を選択して以後の全チェックボックスにチェックを入れて完了させれば7.1chになる