前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ceph运维常用命令

ceph运维常用命令

作者头像
院长技术
发布2020-06-15 06:17:06
2.3K0
发布2020-06-15 06:17:06
举报
文章被收录于专栏:院长运维开发院长运维开发

介绍一些ceph中用到的命令及相关配置

ceph osd df - 可以查看每个osd的用量,每个osd的pg数,权重 ceph osd find <int> - 可以查找到osd的位置,在osd比较多时用到 ceph osd perf - 可以查看所有osd提交及应用提交的延时,对监控osd的健康状态极有帮助 ceph osd scrub <int> - 指定osd进行清洗,注意到,清洗是为了检查osd缺陷和文件系统错误,正确的清洗策略很重要 ceph quorum_status - 报告集群当前法定人数情况,若集群因mon跪了导致故障可由此排查 ceph report - 报告集群当前的全部状态,输出信息非常详细,排查没有头绪时可以试试这个 radosgw-admin bucket limit check - 查看bucket的配置信息,例如索引分片值 ceph daemon osd.1 config show - 显示指定的osd的所有配置情况 ceph tell 'osd.*' injectargs '--osd_max_backfills 64' - 立即为osd设置参数,不需要重启进程即生效 ceph daemon /var/run/ceph/ceph-client.rgw.hostname -s.asok config show - 查看指定的asok的配置 ceph-bluestore-tool bluefs-export --path /var/lib/ceph/osd/ceph-1 --out-dir /home/xx - 导出指定osd的整个rocksdb ceph-kvstore-tool rocksdb /home/xx/db/ list - 查看rocksdb里面的记录 ceph tell osd.* heap release - 通知所有osd释放那些可以释放的内存 ceph daemon osd.x dump_historic_ops - 调查指定osd的op处理情况,诊断延时的瓶颈 ceph daemon osd.x dump_ops_in_flight - 调查指定osd的性能问题

内存剖析: 安装google-perftools 然后启动要监视的osd的剖析器: ceph osd tell 'osd.0' heap start_profiler

然后查看该osd的内存情况: [xxx@ceph-c43 ~]$ sudo ceph tell 'osd.0' heap stats osd.0 tcmalloc heap stats:------------------------------------------------ MALLOC: 1295742880 ( 1235.7 MiB) Bytes in use by application MALLOC: + 0 ( 0.0 MiB) Bytes in page heap freelist MALLOC: + 66885112 ( 63.8 MiB) Bytes in central cache freelist MALLOC: + 22493152 ( 21.5 MiB) Bytes in transfer cache freelist MALLOC: + 33159816 ( 31.6 MiB) Bytes in thread cache freelists MALLOC: + 5402784 ( 5.2 MiB) Bytes in malloc metadata MALLOC: ------------ MALLOC: = 1423683744 ( 1357.7 MiB) Actual memory used (physical + swap) MALLOC: + 271949824 ( 259.4 MiB) Bytes released to OS (aka unmapped) MALLOC: ------------ MALLOC: = 1695633568 ( 1617.1 MiB) Virtual address space used MALLOC: MALLOC: 51319 Spans in use MALLOC: 28 Thread heaps in use

MALLOC: 8192 Tcmalloc page size

Call ReleaseFreeMemory() to release freelist memory to the OS (via madvise()). Bytes released to the OS take up virtual address space but no physical memory.

系统相关: 命令

查看ib卡属于那个numa node,使用命令: 1、mst start 2、mst status -v

perf top -p <osd pid> -查看osd进程在哪些事情花费的时间比较多 sync;echo 2 > /proc/sys/vm/drop_caches -让系统将buff和cache中的数据回写到磁盘并释放掉这部分空间 swapoff -a -关闭swap,这一步将会释放掉所有swap的占用 swapon -a -打开swap,重新将swap打开,此时完全free

在/etc/bashrc中加入export HISTTIMEFORMAT="%F %T " 可对命令的记录加上时间戳

gdb -q a pid - attatch进程后,使用bt打印指定进程的堆栈信息,尤其在进程卡住的情况下

ntp 当集群有clock skew detected on mon.xxx的提示,是因为节点间时间差别太大,使用ntpd并降低同步间隔 1、修改ntpd的更新间隔:在/etc/ntp.conf中加入如下字段: server 172.25.52.51 minpoll 3 maxpoll 4 prefer iburst 这表示优先使用这个ntp server并且在最少2^3=8s,最大2^4=16s内进行同步,每次同步发送8个同步报文,间隔为1s

2、重启ntp服务 systemctl restart ntpd.service 查看ntp服务是否正常工作:ntpq -pn

网卡 开启ib卡的connected模式: echo "connected" > /sys/class/net/ib0/mode

使用下面的配置作为ib卡的ifcfg-ib配置文件 DEVICE=ib0 TYPE=InfiniBand ONBOOT=yes BOOTPROTO=none IPADDR=x.x.x.x PREFIX=16 NETWORK=x.x.0.0 GATEWAY=x.x.x.x IPV4_FAILURE_FATAL=yes IPV6INIT=no CONNECTED_MODE=yes NAME=ib0 MTU=65520

这样配置的ib卡在启动后默认开启connected模式

使用下列步骤优化网卡中断: 1、关闭系统的自带中断平衡: systemctl stop irqbalance.service systemctl disable irqbalance.service

2、禁用掉内核自带的numa均衡器:sysctl.conf中设置kernel.numa_balancing=0 3、使用下列方式绑定指定的中断号到特定的cpu: for k in $( seq 0 255 ) do

echo ff0000,00000000 > /proc/irq/$k/smp_affinity

done

查看本节点的osd绑定cpu的情况: for x in sudo ls -l /var/lib/ceph/osd/|grep 'ceph-'|awk '{print $9}'|awk -F '-' '{print $2}';do sudo systemctl cat ceph-osd@$x.service |grep 'CPUAffinity';done

磁盘多路径 解决multipath导致的多盘符重复问题,osd创建失败后,在/etc/lvm/lvm.conf中加入 global_filter = [ "a|/dev/disk/by-id/.|", "r|./|" ] 让lvm只在by-id中的目录寻找即可,因为在此目录下的磁盘都是根据磁盘的wwn来进行识别的,没有多路径参与

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MALLOC: 8192 Tcmalloc page size
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档