见证人服务器重做系统中

in #cn6 years ago (edited)

一周三次出块都失败了,也不知道服务器到底抽了什么风,于是索性就重装系统吧,顺便把 zram 也折腾下。重做系统的时候没有再选择 ubuntu16.04,而是选择了我最熟悉的 Archlinux。重做很快就结束了,登陆系统看了下,还是 Arch 精简干练,即使把所有需要的软件都装完,内存依然占用很少。

由于我还是打算在 docker 里面跑见证人,所以先安装 docker,执行 pacman -S docker 搞定。

然后安装一个轻量的管理 docker 界面 portainer

# docker volume create portainer_data
# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --name portainer --restart always -v portainer_data:/data portainer/portainer

安装好,直接浏览器访问 IP:9000 ,配置上用户名和密码,选择本地模式,搞定。

接下来就是做个文件的 swap

# fallocate -l 50G /swapfile
# mkswap /swapfile
# swapon /swapfile
# echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab

然后安装 zramswap,由于 zramswap 是在 AUR 里,所以先安装一下 makepkg 所要用到的编译环境

# pacman -S base-devel

然后新建一个普通用户,并切换到该用户的家目录,然后下载 zramswap 的安装包(在 https://aur.archlinux.org/packages/zramswap/ 这里能找到下载地址),解压后编译安装

$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/zramswap.tar.gz
$ tar xvf zramswap.tar.gz
$ cd zramswap
$ makepkg -si

安装好以后,确认下 zram 模块是否加载,如果没有加载的话,加载下

# lsmod | grep zram
# modprobe zram

启动 zramswap 并设置为开机自启动,

# systemctl start zramswap
# systemctl enable zramswap

检查是否正常

# zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram9 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram8 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram7 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram6 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram5 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram4 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram3 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram2 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram1 lz4        1006.3M   4K   69B    4K      10 [SWAP]
/dev/zram0 lz4        1006.3M   4K   69B    4K      10 [SWAP]

# swapon
NAME       TYPE         SIZE USED PRIO
/swapfile  file          50G   0B   -2
/dev/zram0 partition 1006.3M   0B  100
/dev/zram1 partition 1006.3M   0B  100
/dev/zram2 partition 1006.3M   0B  100
/dev/zram3 partition 1006.3M   0B  100
/dev/zram4 partition 1006.3M   0B  100
/dev/zram5 partition 1006.3M   0B  100
/dev/zram6 partition 1006.3M   0B  100
/dev/zram7 partition 1006.3M   0B  100
/dev/zram8 partition 1006.3M   0B  100
/dev/zram9 partition 1006.3M   0B  100

发现 zramswap 只分配了10G内存,于是去查了下他的启动文件 /usr/lib/systemd/system/zramswap.service,发现最终执行的文件是 /usr/lib/systemd/scripts/zramctrl,打印下 zramctrl 的内容,

# cat /usr/lib/systemd/scripts/zramctrl 
#!/bin/sh

start() {
  exec awk -v ZRAM_SIZE=$ZRAM_SIZE -v ZRAM_PARM="$(modinfo zram | grep -E -o '(num_devices|zram_num_devices)')" '

  FILENAME == "/proc/cpuinfo" && ($1 == "processor" || $1 == "Processor") {
    cpucount++
    next
  }
  FILENAME == "/proc/meminfo" && $1 == "MemTotal:" {
    if (ZRAM_SIZE == "")
      ZRAM_SIZE = 20
    mem_total = int( (0 + $2) * 1024 * ( ZRAM_SIZE/100 ) )
    next
  }

....以下代码省略

发现需要设置一个 $ZRAM_SIZE 的环境变量,否则默认20%。在 /usr/lib/systemd/system/zramswap.service 中增加环境变量,

[Unit]
Description=Zram-based swap (compressed RAM block devices)

[Service]
Type=oneshot
Environment="ZRAM_SIZE=100"   # 这里是增加的环境变量
ExecStart=/usr/lib/systemd/scripts/zramctrl start
ExecStop=/usr/lib/systemd/scripts/zramctrl stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

重载配置文件并重启 zramswap

# systemctl daemon-reload
# systemctl restart zramswap

再次查看 zram 状态,发现已经搞定。

# zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram9 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram8 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram7 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram6 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram5 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram4 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram3 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram2 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram1 lz4           4.9G   4K   69B    4K      10 [SWAP]
/dev/zram0 lz4           4.9G   4K   69B    4K      10 [SWAP]

接下来就是去部署 @someguy123 的见证人镜像了,这个在之前写过教程,就不再细说了,这是链接 https://steemit.com/cn/@ety001/5xtjgz

看目前下载离线区块数据的速度应该不是网络卡导致的丢块,难道是之前配置的 shared-file-size 有问题?等部署完见证人运行起来再观察下看看还会不会频繁的丢块了吧。。。


This article is powered by SteemEditor .


感谢你的阅读,我是中文区见证人之一,欢迎通过 SteemConnect 来给我投票,或者打开 https://steemit.com/~witnesses/ 页面,输入 ety001 进行投票。

2.gif

中文区的见证人目前有:
支持一下他们(按字母顺序),一人可以有30票


Thank you for reading. I'm a witness. I would really appreciate your witness vote! You can vote by SteemConnect. Or open https://steemit.com/~witnesses page, input ety001 to vote.

2.gif

Sort:  

恭喜你!您的这篇文章入选 @justyy 今日 (2018-08-23) 榜单 【优秀的文章】, 回复本条评论24小时内领赏,点赞本评论将支持 @dailychina 并增加将来您的奖赏。

Congratulations! This post has been selected by @justyy as today's (2018-08-23) 【Good Posts】, Steem On! Reply to this message in 24 hours to get rewards. Upvote this comment to support the @dailychina and increase your future rewards! ^_^

你好!快来使用超级好用的steemit客户端---Partiko,这个可是我们华人团队开发的哦。倘若你想让我隐形,请回复“取消”。

貌似是篇干货文呀!围观大佬们!

不明觉厉

Coin Marketplace

STEEM 0.19
TRX 0.14
JST 0.029
BTC 64156.67
ETH 3169.32
USDT 1.00
SBD 2.53