集群常用命令
【摘要】 集群常用命令
CN 修复
gs_replace -t config -h CN所在节点的节点名
gs_replace -t start -h CN所在节点的节点名
创建逻辑集群
# 所有节点
gs_lcctl -t create --name=logical_cluster -h all
# 指定 DN 环
gs_lcctl -t create --name=logical_cluster -h node1,node2,node3
创建 cgroup
# root用户登录并切换好 gs_cgroup 安装目录 (GAUSSHOME)
# 删除
./gs_cgroup -d -U $USER
# 创建
./gs_cgroup -c -U $USER -H $GAUSSHOME
# 查看
./gs_cgroup -P -U $USER
# omm用户登录,重启集群(否则出现 Failed to initialize Cgroup 报错信息)
Git版本回退
# 查看待回退版本号
gsql -V
# 查看 mr后的版本号对应的 commit 号
git ls-remote | grep "10743"
# 回退代码
git reset --hard + commit号
git log --graph --all
core
echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
# 产生 core 文件
kill -s SIGSEGV $$
关联远程分支
git push --set-upstream origin trunk
git 生成 patch
# 方法一
git diff commitOld commitNew > a.patch
git apply a.patch
# 方法二
git format-patch commidOld..commitNew
git am *.patch
模拟断网
# 禁止某IP的链接
iptables -A INPUT -s 192.168.1.1 -j DROP
# 查看规则
iptables -L
# 删除规则
iptables -D INPUT 1
查看linux发行版
# suse
cat /etc/SuSE-release
进程信息
# top 查看指定 pid 的线程占用
top -H -p pid
网络
本端
netstat -anop | grep 对端监听端口 | grep 本进程pid
输出信息的第二列是接收buffer,第三列是发送buffer
正常情况,网卡有两处硬件规格:
一处是流量(recv_byte/send_byte),万兆网上限1.2GB,一般达不到,900MB以上就算流量吃满了
二处是包转发率recv_byte/recv_pkg(pps:packets per second),在CPU资源充足时,可以跑到100万pps,一般到50万pps就算大压力了。
pps达到50万左右,说明系统中有大量小包(如果是大包,则10万左右pps可达到1GB带宽上限),小包太多会导致网卡占用CPU资源上升,带宽利用率下降,需要分析小包多的原因。
异常情况,主要看drop/resend百分比,超过0.1%则需要注意,大概1/10的概率超过0.1%,则网络有问题,峰值如果超过1%,且丢包数>10,则说明瞬时丢包严重。
文件
# 大文件
dd if=/dev/zero of=test5_6G bs=1G count=6
# 大文件(不实际写入)
fallocate -l 10G bigfile
# 一百万小文件
seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1
# 查看进程打开文件
lsof -p pid
时间同步
service ntpd stop
ntpdate 192.168.1.1
代码统计
wc -l `find . -name '*.cpp'`
git 使用
x509: certificate signed by unknown authority
git config --global http.sslVerify false
git config --global https.sslVerify false
git diff检查行尾空格
git diff --check
redis_progress_detail
# 表格导出后转csv
cat detail.table | sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g' | awk -F"|" '{print $1","$2","$3","$4","$5","$6}' | sed -e 's/[ ]*,[ ]*/,/g'
# 创建相同表格
create table redis_progress_detail_like(like redis_progress_detail);
# 导入csv数据
copy redis_progress_detail_like from '/home/user/sqlTools/detail.csv' with csv;
查看数据库大小
select datname, pg_database_size(datname::text) from pg_database order by datname;
查看表在每个节点上的大小
select nodename, dnsize, pg_size_pretty(dnsize) as size from table_distribution('tpcds1kx_col', 'store_sales') order by nodename;
查看schema
-- 查看所有 schema 列表
SELECT * FROM pg_namespace;
-- 查看某 schema 的表
SELECT distinct(tablename),schemaname from pg_tables where schemaname = 'pg_catalog';
查看是否有删除列
select oid, relname from pg_class where relname = 'store_sales_tmp_copy';
oid | relname
-------+----------------------
26348 | store_sales_tmp_copy
(1 row)
select attrelid,attname,atttypid,attisdropped ,attnum from pg_attribute where attrelid=26348;
端口占用
lsof -i:port
设置异常检测框架参数
gs_guc set -Z cm -c "abnormal_check_memory_usage = '{ \"_name\" : \"libac_memory_usage.so\", \"check_interval\" : \"60\", \"usage_threshold\" : \"70\", \"check_count\" : \"10\" }'"
sort
# -k 列号;-t 分隔符;-n 数值;-r 逆序
sort -k 2 -t ':' -n -r
gdb忽略信号
handle SIGPIPE nostop noprint
gdb打印stl
# 方法一:借助stl-views-1.0.3.gdb, 可以打印vector, map, list等,但是unordered_map不能打印
source stl-views-1.0.3.gdb
pvec g_confLogPattern # 打印 std::vector
# 方法二:
# 1. 在编译机上搜索,找到与g++版本相同的结果
# 例如,/xxx/python/libstdcxx
find / -name "libstdcxx*" 2>/dev/null
# 2. 将上面搜索到的目录,拷贝至core文件所在机器上,在用户家目录下.gdbinit文件添加下面内容,
# 注意修改第三行中的路径
python
import sys
sys.path.insert(0, '/root/libstdcxx')
from v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
# 3. 使用gdb打开core文件,打印变量即可,例如
(gdb) p ((CmInstanceInfoContainer*)0xaaaab3b0e848)->instanceInfo_
$5 = std::unordered_map with 2 elements = {[5001] = {_vptr.CmInstanceInfo = 0xaaaab3a770e0 <vtable for CmInstanceInfo+16>, id = 0, type = TYPE_NODE, name = "",
path = ""}, [1001] = {_vptr.CmInstanceInfo = 0xaaaab3a770e0 <vtable for CmInstanceInfo+16>, id = 0, type = TYPE_NODE, name = "", path = ""}}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)