Filecoin 运维(1) - 几个常用的系统配置
source link: https://learnblockchain.cn/article/1464
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
本文介绍几个在 Filecoin 挖矿运维的过程中会用到的几个系统配置和小工具。
说明:本文所有操作都是在 Ubuntu18.04-LTS 系统下进行的,Centos 可能需要有些调整,请自行摸索。 另外,本文...
本文介绍几个在 Filecoin 挖矿运维的过程中会用到的几个系统配置和小工具。
说明:本文所有操作都是在 Ubuntu18.04-LTS 系统下进行的,Centos 可能需要有些调整,请自行摸索。 另外,本文所涉及到工具以及调优配置都亲测可用。
1. 永久修改 ulimit
二阶段测试的 lotus daemon
在同步的时候,经常会出现 too many open files
错误,然后停止同步了。这时我们需要修改 ulimit
配置。
一般系统默认的是 1024, 稳妥起见我们可以设置其为 1048576。临时修改 ulimit 我们可以使用如下操作:
ulimit -n 1048576
如果要永久设置,操作就复杂一些。首先,需要设置系统层面的 ulimit。
echo 'fs.file-max = 1048576' | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 立即生效
然后在修改用户层的配置:
sudo tee -a /etc/security/limits.conf << EOF * hard nofile 1048576 * soft nofile 1048576 root hard nofile 1048576 root soft nofile 1048576 EOF
然后修改 Systemd 层:
sudo sed -i '/DefaultLimitNOFILE/c DefaultLimitNOFILE=1048576' /etc/systemd/*.conf sudo systemctl daemon-reexec
如果你用来跑的网络服务,通常你还需要设置最大 socket 连接数:
echo 'net.core.somaxconn=65535' | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 立即生效
改完记得要重启才能生效!!!
2. raid 重启失效问题
这里顺便先提一下硬 RAID 还是软 RAID 的问题。硬 RAID 重建对资源占用率较低;软RAID的话,重建的时候,吃CPU。硬 RAID 的算法其实更稳定点。但软 RAID 性能会更好。 因为 RAID 卡上的 CACHE 一般也就是 512MB 或者 1GB,但软RAID可以随便利用系统的内存做 RAID STRIE CACHE。所以,简单来说, 如果你的 CPU 和内存资源有富余,那么就可以使用 RAID,否则建议使用硬 RAID 。
在搭建 RAID 的时候,不知道大家有没有遇到过这种情况,关机重启之后,之前组的 RAID 设备不见了,存储的数据也丢失了。我就遇到过好几次。原因是没有配置软 RAID 的开机加载初始化。
解决方案如下:
mdadm -Ds >> /etc/mdadm/mdadm.conf
这样在 /etc/mdadm/mdadm.conf
文件中就会出现类似如下的一行配置
ARRAY /dev/md0 metadata=1.2 name=lotus-miner:0 UUID=63dd2141:834e1dd0:b4173301:d483e824
其中 {name} 是你的主机 hostname
UUID 就 RAID 设备的 UUID。
这里顺便贴上搭建 RAID 的脚本:
mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sda /dev/sdb
其中参数 -n
是磁盘的数量,如果后面是分区的话,那就是分区的数量。 -l
参数代表你使用的 RAID 级别,0 代表 RAID0, 1 代表 RAID1,一次类推。
3. 关闭 Numa 功能
首先我们要搞清楚一件事情,为什么要关闭 NUMA?
Linux系统默认开启NUMA,NUMA默认的内存分配策略是优先在进程所在CPU节点的本地内存中分配,会导致CPU节点之间内存分配不均衡。 比如当某个 CPU 节点的内存不足时,会导致 Swap 产生,而不是从远程节点分配内存,即使另一个CPU节点上有足够的物理内存。 这种内存分配策略的初衷是好的,为了内存更接近需要它的进程,但不适合大规模使用内存使用的应用场景,不利于充分利用系统的物理内存。
然而众所周知,Filecoin 对内存的需求近乎贪婪。而且你会发现明还有几十 GB 的物理内存,但是它偏偏却加载了几十 GB 的Swap。 而一旦使用 Swap, 性能就立即下降内存的万分之一甚至更低 。
首先你需要检查一下你的机器上是否已经开启了 Numa 模式,可以使用 numastat
这个命令来查看,如果本机没有这个命令的话,你需要先安装 numactl
。
sudo apt-get install numactl
然后就可以使用 numastat
查看当前系统是否有启用 Numa.
numastat node0 numa_hit 484417331 numa_miss 0 numa_foreign 0 interleave_hit 40687 local_node 484417331 other_node 0
如果你的机器跟我的一样只有一个 node
的话,说明你不需要关闭 Numa 了,因为此时 Numa 根本没有起作用。一般来说家用机器,CPU 的核数不会太高,所以不需要用到 Numa 来优化。
我在 E5-2684 V4
的机器上运行了一下,结果如下:
root@miner1:~# numastat node0 node1 numa_hit 2093513830 2859729719 numa_miss 949731552 128562031 numa_foreign 128562031 949731552 interleave_hit 51160 50655 local_node 2093549941 2859639315 other_node 949695441 128652435
从上面的结果来看,Numa 显然是启用的,CPU 和内存都被分配成 2 个 node。 跨节点之间进行物理内存的访问,性能会降低十倍 。
禁用 Numa 有两种方法,一种是通过 Bios 设置,不同的主板有不同的设置方法,这个我就不说了,大家根据自己的主板类型去网上找答案。
这里主要说下通过修改系统配置的方式禁用 Numa :
(1)CentOS 的 grub 配置文件修改,编辑 /etc/grub.conf
,找到kernel行,该行类似如下(不同的版本内容略有差异,但开头有“kernel /vmlinuz-”):
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_centos64001-lv_root rd_NO_LUKS rd_LVM_LV=vg_centos64001/lv_root rd_NO_MD rd_LVM_LV=vg_centos64001/lv_swap \ crashkernel=128M LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
在kernel行的末尾,空格再添加 numa=off
,如果有多个 kernel 行,则每个 kernel 行都要添加。
(2)Ubuntu18.04 的 grub 文件修改,编辑 /boot/grub/grub.cfg
,找到 Linux 引导行,该行类似如下(不同版本内容略有差异,但开头有 linux /boot/vmlinuz-
):
linux /boot/vmlinuz-4.15.0-106-generic root=UUID=2c5f7d8a-ff33-4c78-b5a4-cd8dc75823f3 ro maybe-ubiquity
在Linux引导行的末尾,空格再添加 numa=off
,如果有多个 Linux 引导行,则每个 Linux 引导行都要添加。
(3)修改后保存,再重启系统,再验证是否成功关闭 NUMA。
numastat
如果输出结果中只有 node0,则表示成功禁用了NUMA,如果有 node1 出现则失败。
4. 开启 CPU 到高性能模式
Ubuntu 系统中默认 CPU 都是工作在 powersave
(省电)模式的,这样性能没有最大话,所以需要调整到 performance
(高性能)模式。你可以通过设置 Bios 或者通过软件临时调节。
1、安装cpufrequtils:
sudo apt-get install cpufrequtils
2、查看当前cpu的状态:
cpufreq-info
3、把cpu调整到性能模式:
sudo cpufreq-set -g performance
5. 两个资源查看小工具
(1)虽然 linux 系统自带的 top
工具已经比较强大了,但是感觉视觉体验上还是不够好,而且不能看到每个核的使用情况。 htop
刚好可以弥补 top 工具的不足。 Ubuntu 10.04 是默认安装了 htop
工具了的。如果没有的话,使用 apt-get install htop
安装。效果如下:
(2)nvtop 是一个 GPU 资源查看工具, nvidia-msi
跟 top
一样简陋; 相比之下,nvtop 比 nvidia-msi 好看多了。
Ubuntu-20.04 安装:
sudo apt install nvtop
18.04 没有直接的软件源可以使用,需收手动编译:
sudo apt install cmake libncurses5-dev libncursesw5-dev git git clone https://github.com/Syllo/nvtop.git mkdir -p nvtop/build && cd nvtop/build cmake .. # 如果上面命令报错 "Could NOT find NVML (missing: NVML_INCLUDE_DIRS)" 就执行下面这个 cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True make && sudo make install
nvtop
效果如下:
~~~~
本文首发于: 小一辈无产阶级码农
原文链接:http://www.r9it.com/20200615/sys-config-for-filecoin.html
参考链接
本文介绍几个在 Filecoin 挖矿运维的过程中会用到的几个系统配置和小工具。
说明:本文所有操作都是在 Ubuntu18.04-LTS 系统下进行的,Centos 可能需要有些调整,请自行摸索。 另外,本文所涉及到工具以及调优配置都亲测可用。
1. 永久修改 ulimit
二阶段测试的 lotus daemon
在同步的时候,经常会出现 too many open files
错误,然后停止同步了。这时我们需要修改 ulimit
配置。
一般系统默认的是 1024, 稳妥起见我们可以设置其为 1048576。临时修改 ulimit 我们可以使用如下操作:
ulimit -n 1048576
如果要永久设置,操作就复杂一些。首先,需要设置系统层面的 ulimit。
echo 'fs.file-max = 1048576' | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 立即生效
然后在修改用户层的配置:
sudo tee -a /etc/security/limits.conf << EOF * hard nofile 1048576 * soft nofile 1048576 root hard nofile 1048576 root soft nofile 1048576 EOF
然后修改 Systemd 层:
sudo sed -i '/DefaultLimitNOFILE/c DefaultLimitNOFILE=1048576' /etc/systemd/*.conf sudo systemctl daemon-reexec
如果你用来跑的网络服务,通常你还需要设置最大 socket 连接数:
echo 'net.core.somaxconn=65535' | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 立即生效
改完记得要重启才能生效!!!
2. raid 重启失效问题
这里顺便先提一下硬 RAID 还是软 RAID 的问题。硬 RAID 重建对资源占用率较低;软RAID的话,重建的时候,吃CPU。硬 RAID 的算法其实更稳定点。但软 RAID 性能会更好。 因为 RAID 卡上的 CACHE 一般也就是 512MB 或者 1GB,但软RAID可以随便利用系统的内存做 RAID STRIE CACHE。所以,简单来说, 如果你的 CPU 和内存资源有富余,那么就可以使用 RAID,否则建议使用硬 RAID 。
在搭建 RAID 的时候,不知道大家有没有遇到过这种情况,关机重启之后,之前组的 RAID 设备不见了,存储的数据也丢失了。我就遇到过好几次。原因是没有配置软 RAID 的开机加载初始化。
解决方案如下:
mdadm -Ds >> /etc/mdadm/mdadm.conf
这样在 /etc/mdadm/mdadm.conf
文件中就会出现类似如下的一行配置
ARRAY /dev/md0 metadata=1.2 name=lotus-miner:0 UUID=63dd2141:834e1dd0:b4173301:d483e824
其中 {name} 是你的主机 hostname
UUID 就 RAID 设备的 UUID。
这里顺便贴上搭建 RAID 的脚本:
mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sda /dev/sdb
其中参数 -n
是磁盘的数量,如果后面是分区的话,那就是分区的数量。 -l
参数代表你使用的 RAID 级别,0 代表 RAID0, 1 代表 RAID1,一次类推。
3. 关闭 Numa 功能
首先我们要搞清楚一件事情,为什么要关闭 NUMA?
Linux系统默认开启NUMA,NUMA默认的内存分配策略是优先在进程所在CPU节点的本地内存中分配,会导致CPU节点之间内存分配不均衡。 比如当某个 CPU 节点的内存不足时,会导致 Swap 产生,而不是从远程节点分配内存,即使另一个CPU节点上有足够的物理内存。 这种内存分配策略的初衷是好的,为了内存更接近需要它的进程,但不适合大规模使用内存使用的应用场景,不利于充分利用系统的物理内存。
然而众所周知,Filecoin 对内存的需求近乎贪婪。而且你会发现明还有几十 GB 的物理内存,但是它偏偏却加载了几十 GB 的Swap。 而一旦使用 Swap, 性能就立即下降内存的万分之一甚至更低 。
首先你需要检查一下你的机器上是否已经开启了 Numa 模式,可以使用 numastat
这个命令来查看,如果本机没有这个命令的话,你需要先安装 numactl
。
sudo apt-get install numactl
然后就可以使用 numastat
查看当前系统是否有启用 Numa.
numastat node0 numa_hit 484417331 numa_miss 0 numa_foreign 0 interleave_hit 40687 local_node 484417331 other_node 0
如果你的机器跟我的一样只有一个 node
的话,说明你不需要关闭 Numa 了,因为此时 Numa 根本没有起作用。一般来说家用机器,CPU 的核数不会太高,所以不需要用到 Numa 来优化。
我在 E5-2684 V4
的机器上运行了一下,结果如下:
root@miner1:~# numastat node0 node1 numa_hit 2093513830 2859729719 numa_miss 949731552 128562031 numa_foreign 128562031 949731552 interleave_hit 51160 50655 local_node 2093549941 2859639315 other_node 949695441 128652435
从上面的结果来看,Numa 显然是启用的,CPU 和内存都被分配成 2 个 node。 跨节点之间进行物理内存的访问,性能会降低十倍 。
禁用 Numa 有两种方法,一种是通过 Bios 设置,不同的主板有不同的设置方法,这个我就不说了,大家根据自己的主板类型去网上找答案。
这里主要说下通过修改系统配置的方式禁用 Numa :
(1)CentOS 的 grub 配置文件修改,编辑 /etc/grub.conf
,找到kernel行,该行类似如下(不同的版本内容略有差异,但开头有“kernel /vmlinuz-”):
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_centos64001-lv_root rd_NO_LUKS rd_LVM_LV=vg_centos64001/lv_root rd_NO_MD rd_LVM_LV=vg_centos64001/lv_swap \ crashkernel=128M LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
在kernel行的末尾,空格再添加 numa=off
,如果有多个 kernel 行,则每个 kernel 行都要添加。
(2)Ubuntu18.04 的 grub 文件修改,编辑 /boot/grub/grub.cfg
,找到 Linux 引导行,该行类似如下(不同版本内容略有差异,但开头有 linux /boot/vmlinuz-
):
linux /boot/vmlinuz-4.15.0-106-generic root=UUID=2c5f7d8a-ff33-4c78-b5a4-cd8dc75823f3 ro maybe-ubiquity
在Linux引导行的末尾,空格再添加 numa=off
,如果有多个 Linux 引导行,则每个 Linux 引导行都要添加。
(3)修改后保存,再重启系统,再验证是否成功关闭 NUMA。
numastat
如果输出结果中只有 node0,则表示成功禁用了NUMA,如果有 node1 出现则失败。
4. 开启 CPU 到高性能模式
Ubuntu 系统中默认 CPU 都是工作在 powersave
(省电)模式的,这样性能没有最大话,所以需要调整到 performance
(高性能)模式。你可以通过设置 Bios 或者通过软件临时调节。
1、安装cpufrequtils:
sudo apt-get install cpufrequtils
2、查看当前cpu的状态:
cpufreq-info
3、把cpu调整到性能模式:
sudo cpufreq-set -g performance
5. 两个资源查看小工具
(1)虽然 linux 系统自带的 top
工具已经比较强大了,但是感觉视觉体验上还是不够好,而且不能看到每个核的使用情况。 htop
刚好可以弥补 top 工具的不足。 Ubuntu 10.04 是默认安装了 htop
工具了的。如果没有的话,使用 apt-get install htop
安装。效果如下:
(2)nvtop 是一个 GPU 资源查看工具, nvidia-msi
跟 top
一样简陋; 相比之下,nvtop 比 nvidia-msi 好看多了。
Ubuntu-20.04 安装:
sudo apt install nvtop
18.04 没有直接的软件源可以使用,需收手动编译:
sudo apt install cmake libncurses5-dev libncursesw5-dev git git clone https://github.com/Syllo/nvtop.git mkdir -p nvtop/build && cd nvtop/build cmake .. # 如果上面命令报错 "Could NOT find NVML (missing: NVML_INCLUDE_DIRS)" 就执行下面这个 cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True make && sudo make install
nvtop
效果如下:
~~~~
本文首发于: 小一辈无产阶级码农
原文链接: http://www.r9it.com/20200615/sys-config-for-filecoin.html
参考链接
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。
- 发表于 6分钟前
- 阅读 ( 6 )
- 学分 ( 0 )
- 分类:FileCoin
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK