书写技术文档的规范结合阮一峰的博客介绍

技术文档每天都会遇到,条理不够清晰,表达不够准确首先是很难让人理解,同时还会增加沟通的成本

我这边结合阮一峰的博客也结合我最近写文档的思路列一下
两个方向是实践类(包括但不限于 部署,搭建),预研学习类(包括 新技术,技术选型,新趋势)
实践类较为简单
先来个实例网站华为云的部署文档
1.t1
1.1 t2
1.1.1t3
a.
b.
c.
或者
-
-
-

这种来分开步骤和梳理逻辑
同时遇到的问题或者是要集中介绍和梳理的内容可以放在后面开头
问题这种一般先描述现象和问题,然后 列出解决方案不必纠结与 ,把问题讲清楚
在md也尽量使用规范 引用 代码块 需要分开使用不要乱用,对应主要的部分可以加粗高亮

docker容器导入导出和配置

镜像导入导出

目前的导入导出是 sava/load,export/import ,前者有完整的数据,后者类似于容器的快照,开始搭建时,想直接复制我们服务器中运行的容器,导出后在docker中运行后 一直报

No command specified” from re-imported docker image/container

后面有了解 sava/load 会有完整的数据 但是 export的tar包这个命令将导入镜像文件和参数

dockerfile使用

目前需要创建docker容器 之前用的是基于 Java环境的镜像 构件的,当前开发都后期需要gdal和其他的环境,仅仅基于java的 命令是远远不够用户的

首先gdal 官方提供了源,但是这个源没有java环境需要我们安装,他提供了多个Linux发行版本 包括Ubuntu和alpine ,起初基于Ubuntu small来搭建的

1
2
3
4
5
6
7
8
9
10
FROM osgeo/gdal:ubuntu-small-3.2.1
MAINTAINER gdallikedemo
RUN add-apt-repository ppa:openjdk-r/ppa && \
apt-get update && \
apt-get install -y java-1.8.0-openjdk && \
apt-get clean;
COPY MY_JAR.jar /home/MY_JAR.jar
# RUN nohup java -jar /home/MY_JAR.jar >/dev/null 2>&1 &
CMD ["java","-jar","/home/MY_JAR.jar"]

编写Linux启动文件并设置为自启动使用systemctl

编写Linux启动文件并设置为自启动使用systemctl

常见使用的格式模板

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Sakura Frp Client Service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart= 执行步骤

[Install]
WantedBy=multi-user.target

pgsql重要视图转载

转载地址 PostgreSQL统计信息的几个重要视图

1、pg_stat_database

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-[ RECORD 1 ]--+------------------------------
datid | 13156 #数据库的oid
datname | postgres #数据库名
numbackends | 0 #访问当前数据库的连接数量
xact_commit | 2357 #该数据库事务提交总量:和下面的rollback和作为TPS统计
xact_rollback | 17 #该数据库事务rollback总量,如果特别多,需要看业务是否有问题了
blks_read | 1946 #总磁盘物理读的块数,这里的read可能是从 cache中读取,如果很高需要结合blk_read_time看是否真的存在从磁盘读取的情况
blks_hit | 103625 #从shared buffer命中块数
tup_returned | 1413113 #对于表来说,是全表扫描的行数;对于索引是通过索引返回的索引行数,如果这个值明显大于tup_fetched,说明当前数据库存在大量的全表扫描。查看执行计划,这个是databas全局级别的
tup_fetched | 36041 #指通过索引返回的行数
tup_inserted | 104 #插入的行数
tup_updated | 0 #更新的行数
tup_deleted | 19 #删除的行数
conflicts | 0 #与恢复冲突取消的查询次数,只会在备机上发生
temp_files | 0 #产生临时文件的数量,如果这个值很高,需要调大work_mem
temp_bytes | 0 #临时文件的大小
deadlocks | 0 #死锁的数量,如果这个值很大说明业务逻辑有问题
blk_read_time | 0 #数据库中花费在读取文件的时间,这个值很高说明内存较小,需要频繁从磁盘读入数据文件
blk_write_time | 0 #数据库中花费在写数据文件的时间,pg中脏页一般写入page cache,如果这个值较高,则说明cache较小,操作系统的cache需要更积极的写入
stats_reset | 2019-02-11 23:42:37.526743-08 #统计信息重置的时间

pgsql和mysql的对比和特性

目前找到的资料和说法如下 后续还会继续补充

1. pgsql 的特点

主要是 多线程的使用同时 提供提供了丰富的类型支持 json,varchar, 等,索引的类型也是有很多包括 b-tree,map,hash,gist这些索引 ,同时 处理的数据量也能保证数据量的读写,PostgreSQL支持物化视图

Pg 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性,

es索引生命周期维护

keyword text

hot-warm-cold架构将索引数据切分成hot/warm/cold的索引。hot索引负责最新数据的读写,可使用内存存储;warm索引负责较旧数据的读取,可使用内存或SSD存储;cold索引很少被读取,可使用大容量磁盘存储。随着时间的推移,数据不断从hot索引->warm索引->cold索引迁移。针对不同阶段的索引我们还可以调整索引的主分片数,副本数,单分片的segment数等等,更好的利用机器资源。

索引生命周期管理(Index Lifecycle Management ,简称ILM)
作者:Monica2333
链接:https://juejin.im/post/6844904131262431246
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。