speed | canonical_alias
-------+------------------------------------------
4953 | #news:smith.gdgd.jp.net
1108 | #neta:matrix.juggler.jp
698 | #element-web:matrix.org
669 | #srad:matrix.juggler.jp
267 | #synapse:matrix.org
118 |
113 | #omokan:matrix.juggler.jp
100 | #soccer:matrix.juggler.jp
86 | #lobby:matrix.juggler.jp
81 | #iyh:matrix.juggler.jp
55 | #nowplaying:matrix.juggler.jp
50 | #miko:matrix.juggler.jp
45 | #fediverse:nibbana.jp
40 | #welcome:matrix.fedibird.com
38 | #baseball-watch:matrix.juggler.jp
30 |
28 | #programming:matrix.juggler.jp
22 | #talk:matrix.fedibird.com
12 | #matrix-research:matrix-jp.net
10 | #yamako-experimental:matrix.fedibird.com
9 | #pc:matrix.juggler.jp
8 | #anime-watch:matrix.juggler.jp
6 | #freetalk:matrix.mstddntfdn.online
3 | #retro-game:matrix.juggler.jp
2 | #beginner:matrix.juggler.jp
1 | #mjj:matrix.juggler.jp
1 | #camera:matrix.juggler.jp
(27 rows)
cron+perlで現在再生中の曲をSpotifyから取ってきて適当にフィルタしてMatrixに送るbotを書いてみた。導入とか色々はリンク先に。 …
https://matrix-room-list-jp.netlify.app/ から部屋を開くリンク。今は matrix.juggler.jp に固定してるんですが、たとえば部屋のあるホームサーバのWebUIに飛ばしたいとか、ユーザがクッキーに覚えさせたホームサーバのWebUIに飛ばしたいとかありますよね。 …
sudo apt-get install unbound
でインストール。 /etc/unbound/unbound.conf.d/forwarder.conf
を書く。
内容は長すぎるのでgistに貼る。sudo /usr/sbin/unbound-checkconf
でエラーが出ないことを確認。コピー元のをそのままとはいかなかった。sudo service unbound restart
でサービス再起動。/etc/network/interfaces
を編集して dns-nameservers 127.0.0.1
と書き換えて service networking restart
してしまった。なんか自動で/etc/resolvconf/update.d/unbound
が置かれるみたいだけどresolveconfよく分からん。/etc/dhcp/dhcpd.conf
を編集してoption domain-name-servers XXX.XXX.XXX.XXX;
と書き換えて sudo service isc-dhcp-server restart
でスマホ等からLAN内部のDNSが使われるようにした。自宅サーバでMatrixしたらなぜか自宅のDNSリゾルバが不調ぎみ。 ロングポーリングで自宅ルータのNATテーブルに負荷がかかるとかそんな理由かもしれない。…
今回は Dokany と WinSshFS Foreveryone を使って、 LinuxマシンのフォルダをWindowsのドライブとしてマウントしてみる。…
pg_stat_statements.so の存在確認。
$ ls -ld /usr/lib/postgresql/13/lib/pg_stat_statements.so
-rw-r--r-- 1 root root 47336 Feb 11 01:33 /usr/lib/postgresql/13/lib/pg_stat_statements.so
postgresql.confに追記。
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = top
pg_stat_statements.save = on
他の行でshared_preload_libraries を設定していないか確認すること。
fioで測定して出力を整形してみた。整形に使ったスクリプト
nvme0n1: ios=808052/913421, merge=0/3, ticks=282937/243359, in_queue=299720, util=91.70%
| | Read(MB/s)|Write(MB/s)|
|--------------|-----------|-----------|
| Seq-1M-Q1T1| 2456.000| 4116.000|
|Rand-512k-Q8T8| 3692.000| 3290.000|
| Rand-4k-Q32T1| 996.000| 912.000|
| Rand-4k-Q1T1| 66.800| 303.000|
md0: ios=3202/1572, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=1600/2004, aggrmerge=0/8, aggrticks=153276/15857, aggrin_queue=163388, aggrutil=89.38%
sdb: ios=904/2004, merge=0/8, ticks=92812/15558, in_queue=103608, util=69.42%
sda: ios=2297/2004, merge=1/8, ticks=213741/16156, in_queue=223168, util=89.38%
| | Read(MB/s)|Write(MB/s)|
|--------------|-----------|-----------|
| Seq-1M-Q1T1| 171.000| 165.000|
|Rand-512k-Q8T8| 128.000| 22.700|
| Rand-4k-Q32T1| 1.457| 0.289|
| Rand-4k-Q1T1| 0.394| 0.337|
SSDのSeq-ReadがWindowsと比べて妙に遅い気もするが、ファイルシステムも測定ソフトも異なるのが主な理由ではないだろうか。
mbw https://github.com/raas/mbw/blob/master/mbw.c を使ってテスト。 単純な配列要素コピーが一番速いとかいう結果が出てるのがとても意外。
$ mbw 8000 |grep AVG
AVG Method: MEMCPY Elapsed: 0.85167 MiB: 8000.00000 Copy: 9393.310 MiB/s
AVG Method: DUMB Elapsed: 0.43527 MiB: 8000.00000 Copy: 18379.561 MiB/s
AVG Method: MCBLOCK Elapsed: 0.60364 MiB: 8000.00000 Copy: 13252.928 MiB/s
蛇足だが、定期的なチェックはいつ発生するのかというとUbuntu 20 では以下のサービスが管理してるらしい。
$ systemctl status mdcheck_start.timer
● mdcheck_start.timer - MD array scrubbing
Loaded: loaded (/lib/systemd/system/mdcheck_start.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Thu 2021-03-18 15:20:24 JST; 23min ago
Trigger: Sun 2021-04-04 17:58:21 JST; 2 weeks 3 days left
Triggers: ● mdcheck_start.service
Mar 18 15:20:24 sirius systemd[1]: Started MD array scrubbing.
$ systemctl status mdcheck_start.service
● mdcheck_start.service - MD array scrubbing
Loaded: loaded (/lib/systemd/system/mdcheck_start.service; static; vendor preset: enabled)
Active: inactive (dead)
TriggeredBy: ● mdcheck_start.timer
大丈夫そう。
$ free
total used free shared buff/cache available
Mem: 65793280 313700 64740856 1560 738724 64836272
Swap: 75497464 0 75497464
$ dmesg | grep -i edac
[ 0.466464] EDAC MC: Ver: 3.0.0
[ 9.199660] EDAC amd64: Node 0: DRAM ECC enabled.
[ 9.199661] EDAC amd64: F17h_M70h detected (node 0).
[ 9.199703] EDAC MC: UMC0 chip selects:
[ 9.199704] EDAC amd64: MC: 0: 16384MB 1: 0MB
[ 9.199705] EDAC amd64: MC: 2: 16384MB 3: 0MB
[ 9.199707] EDAC MC: UMC1 chip selects:
[ 9.199707] EDAC amd64: MC: 0: 16384MB 1: 0MB
[ 9.199708] EDAC amd64: MC: 2: 16384MB 3: 0MB
[ 9.199708] EDAC amd64: using x16 syndromes.
[ 9.199709] EDAC amd64: MCT channel count: 2
[ 9.199751] EDAC MC0: Giving out device to module amd64_edac controller F17h_M70h: DEV 0000:00:18.3 (INTERRUPT)
[ 9.199757] EDAC PCI0: Giving out device to module amd64_edac controller EDAC PCI controller: DEV 0000:00:18.0 (POLLED)
[ 9.199757] AMD64 EDAC driver v3.5.0
$ edac-util -v
mc0: 0 Uncorrected Errors with no DIMM info
mc0: 0 Corrected Errors with no DIMM info
edac-util: No errors to report.
$ sudo dmidecode --type memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.
# SMBIOS implementations newer than version 3.2.0 are not
# fully supported by this version of dmidecode.
Handle 0x0010, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 128 GB
Error Information Handle: 0x000F
Number Of Devices: 4
Handle 0x0018, DMI type 17, 40 bytes
Memory Device
(snip...)
Total Width: 128 bits
Data Width: 64 bits
Size: 16384 MB
(snip...)
Handle 0x001B, DMI type 17, 40 bytes
Memory Device
(snip...)
Total Width: 128 bits
Data Width: 64 bits
(snip...)
Handle 0x001E, DMI type 17, 40 bytes
Memory Device
(snip...)
Total Width: 128 bits
Data Width: 64 bits
(snip...)
Handle 0x0021, DMI type 17, 40 bytes
Memory Device
(snip...)
Total Width: 128 bits
Data Width: 64 bits
(snip...)
6TBのHDDを2つ使ってRAID1を組む。
/dev/sdaと/dev/sdb にpartedでGPTパーティションテーブルとパーティションを作る。
# parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) unit GB
(parted) print
Model: ATA WDC WD60EZAZ-00S (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
(parted) mkpart
Partition name? []?
File system type? [ext2]? ext4
Start? 0
End? 6001GB
(parted) quit
Information: You may need to update /etc/fstab.
/dev/sdbも同様に上記を行う。
mdadmコマンドでRAIDボリュームを作る。
# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
作成されたボリュームをext4ファイルシステムで初期化する。
# mke2fs -t ext4 -c /dev/md0
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done
Creating filesystem with 1465097216 4k blocks and 183140352 inodes
Filesystem UUID: XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed. (0 0.44% done, 1:57 elapsed. (0/0/0 errors)
apt install lm-sensors nvme-cli hddtemp
CPUとGPUは初回だけsensors-detect
してからsensors
で見れた。
nouveau-pci-0d00
Adapter: PCI adapter
GPU core: 912.00 mV (min = +0.80 V, max = +1.19 V)
temp1: +47.0°C (high = +95.0°C, hyst = +3.0°C)
(crit = +105.0°C, hyst = +5.0°C)
(emerg = +135.0°C, hyst = +5.0°C)
k10temp-pci-00c3
Adapter: PCI adapter
Tdie: +34.0°C (high = +70.0°C)
Tctl: +34.0°C
SSDはnvme smart-log /dev/nvme0 | grep ^temperature
で見れた。
temperature : 41 C
hddはlsblk -a
でブロックデバイス一覧を調べてから hddtemp /dev/sda /dev/sdb
で見れる。
/dev/sda: WDC WD60EZAZ-00SF3B0: 38°C
/dev/sdb: WDC WD60EZAZ-00SF3B0: 36°C
クライアントPCで以下を実行してキーを作る。
cd ~/.ssh
ssh-keygen -t ed25519 -f {KEY_FILE_NAME}
cat {KEY_FILE_NAME}.pub
波括弧で囲った部分は適切に変更すること。 公開鍵を行ごとメモしておく。
素の状態でパスワード認証でサーバ側にSSHログイン。
mkdir ~/.ssh
cd ~/.ssh
chmod 700 .
emacs authorized_keys
(公開鍵を貼り付け、保存して終了)
chmod 600 authorized_keys
クライアントPC で ~/.ssh/config
に以下のエントリを追加。
Host {Name}
HostName {IP_ADDR}
Port 22
User tateisu
IdentityFile ~/.ssh/{KEY_FILE_NAME}
TCPKeepAlive yes
ServerAliveInterval=30
波括弧で囲った部分は適切に変更すること。
動作確認。ssh {Name}
を実行するとエントリ中のユーザ名や鍵ファイルが使われる。
service ssh restart
動作確認。
ssh {Name}
を実行すると普通に接続できること。ssh username@{IP_ADDR}
(デフォルトのポート番号)でssh: connect to host XXX.XXX.XXX.XXX port 22: Connection refused
のようなエラーが出ること。ssh username@{IP_ADDR} -p (設定したポート番号)
でパスワードを尋ねずにPermission denied (publickey).
のようなエラーが出ること。IPアドレスの固定。
サーバ用途なのでとりあえずIPアドレスを固定にしないといけない。
/etc/netplan/
00-insaller-config.yaml
Netplanはこのフォルダにある*.yamlファイルを文字コード順に全て読み、上書きしていく。 /etc/netplan/99-config.yaml を作成してそこに設定を書けば、他の何かによって上書きされることはないらしい。
$ cat /etc/netplan/99-config.yaml
# This is the network config for my LAN.
network:
version: 2
renderer: networkd
ethernets:
<<NETWORK_INTERFACE_NAME>>:
dhcp4: false
dhcp6: false
addresses:
- <<HOST_ADDR>>/24
gateway4: <<GATEWAY_ADDR>>
nameservers:
addresses: [ <<DNS_ADDR>> ]
<<
と >>
で囲った部分は全て環境に合わせて書き換える。
ファイルの編集が終わったら sudo netplan apply
で反映される。
Ubuntu Server 20.04.2 LTS のインストール
512GBのカードも見てみた。