贺巩山的博客

没有伞的孩子更要努力奔跑


  • 首页

  • 文件系统

  • Linux运维

  • 剑指Offer

  • LeetCode题解

  • PAT甲级题解

  • PAT乙级题解

  • CCF CSP题解

  • 分类

  • 标签

  • 归档

  • 书单

  • 关于

  • 搜索

论文阅读《Ceph: A Scalable, High-Performance Distributed File System》

发表于 2022-02-22 | 更新于 2022-03-03 | 分类于 file system
字数统计: 617

本文发表在OSDI’06中,是开源存储系统Ceph的原始论文。

阅读全文 »

使用C语言设置CPU亲和度

发表于 2022-01-25 | 更新于 2022-02-14 | 分类于 cpu
字数统计: 239

一台计算机上可能有多个CPU,如何让程序只在特定的CPU上运行呢?

阅读全文 »

Python中的子进程

发表于 2022-01-24 | 更新于 2022-03-08 | 分类于 python
字数统计: 1
1
2


查看进程调用的系统调用

发表于 2022-01-23 | 更新于 2022-02-14 | 分类于 linux
字数统计: 67

如何查看进程使用了哪些系统调用呢?strace正是这样一个工具。

阅读全文 »

C++标准模板库(STL)之map

发表于 2022-01-21 | 更新于 2022-03-24 | 分类于 cpp
字数统计: 601

最近,我参与了师兄的论文实现,原型系统需要用到键值对映射。考虑到项目代码采用C++编写,因此,有必要了解下STL中map的使用方法。

阅读全文 »

cmake常用命令

发表于 2022-01-19 | 更新于 2022-03-11 | 分类于 cmake
字数统计: 198

本文总结了常用的cmake命令。

阅读全文 »

Gekkofs的安装和部署

发表于 2022-01-11 | 更新于 2022-01-13
字数统计: 325

下载最新的稳定版:

1
wget https://storage.bsc.es/gitlab/hpc/gekkofs/-/archive/v0.8.0/gekkofs-v0.8.0.tar.gz

解压:

1
tar -zxf gekkofs-v0.8.0.tar.gz

下载依赖:

1
.scripts/dl_dep.sh depend/

编译依赖:

1
.scripts/compile_dep.sh depend/ install/
  • 安装bmi时,可能会报:
1
aclocal: not found

解决办法:

1
2
# yum install -y automake
apt install -y automake
  • 安装libfabric时,可能会报:
1
2
3
1.Libtool library used but 'LIBTOOL' is undefined

2.numactl-devel or libnuma-devel not found

解决办法:

1
2
# yum install -y libtool libnuma-devel
apt install -y libtool libnuma-dev
  • 安装libfabric%experimental时,可能会报:
1
2
configure: verbs provider: disabled
configure: WARNING: verbs provider was requested, but cannot be compiled

解决办法:

1
apt install -y librdmacm-dev
  • 安装mercury时,可能会报:
1
2
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find UUID (missing: UUID_INCLUDE_DIR UUID_LIBRARY)

解决办法:

1
apt install -y libconfig-dev uuid-dev

不影响编译的报错:

  • 安装syscall_intercept时,可能会会出现如下提示:
1
pandoc not found

解决办法:

1
apt install -y pandoc
  • 安装agios
1
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

解决办法:

1
apt install -y doxygen

编译GekkoFS

  • 配置
1
mkdir build && cd build
1
cmake -DCMAKE_PREFIX_PATH=/home/scfs/install -DCMAKE_BUILD_TYPE=Release ..

在cmake执行的过程中,可能会报如下错误:

1
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

解决办法:

1
apt install -y zlib1g-dev
  • 编译
1
2
/root/scfs/include/common/rpc/distributor.hpp:38:10: fatal error: boost/icl/interval_map.hpp: No such file or directory
38 | #include <boost/icl/interval_map.hpp>

解决办法:

1
apt install -y libboost-dev
  • 安装
1
make install

记录CPU占用率

发表于 2022-01-09 | 更新于 2022-02-14 | 分类于 cpu
字数统计: 203

本文涉及的命令有date、killall、top、wait和sleep。

服务端

1.CPU记录脚本test-cpu.sh

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
dir=`date +%Y-%m-%d-%H-%M-%S-%s`
subdir=$1
basedir="/root/data/${dir}/${subdir}"
mkdir -p $basedir

for ((i = 0; ; i += 1)) do
top -b -n 1 > ${basedir}/ceph_cpu_${i}.txt
sleep 1s
done

2.安装killall工具

1
yum install -y psmisc

客户端

1.利用SSH执行远程脚本:

1
2
3
4
ssh -ttq root@ip 2>&1 > /dev/null << EOF
/root/test-cpu.sh ${test_name} &
exit
EOF

2.利用SSH结束执行

1
ssh root@ip "killall -9 test-cpu.sh"

完整的测试脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
server_list=(xdata1 xdata2 xdata6)
function init_log() {
test_name=$1
for server in ${server_list[@]}; do
ssh -ttq root@${server} 2>&1 > /dev/null << EOF
/root/test-cpu.sh ${test_name} &
exit
EOF
done
}

function close_log() {
for server in ${server_list[@]}; do
ssh root@${server} "killall -9 test-cpu.sh"
done
}

实用软件推荐

发表于 2022-01-08 | 更新于 2022-03-13 | 分类于 software
字数统计: 57

f.lux,https://justgetflux.com,显示器颜色调整工具

Typora,https://typora.io,Markdown编辑器

Overleaf,https://www.overleaf.com,在线LaTex编辑器

Diagrams,https://app.diagrams.net,在线绘图工具

坚果云,https://www.jianguoyun.com,文件共享工具

在服务器间进行时间同步

发表于 2021-12-26 | 更新于 2021-12-26 | 分类于 operation
字数统计: 185

在Ceph集群的运行中,经常会出现如下问题:

1
2
HEALTH_WARN
clock skew detected on mon.xdata2

问题分析:这是由于服务器之间时钟不同步造成的。

阅读全文 »
1234…49
Gongshan He

Gongshan He

490 日志
62 分类
89 标签
GitHub 微博 知乎 Linkedin E-Mail
友情链接
  • 卢明冬的博客
  • lipixun
  • 柳婼 の blog
  • 心灵港
  • Liudeyin
© 2016 — 2023 Gongshan He
访问人数 总访问量 次