- 博客(47)
- 收藏
- 关注
原创 Bash系列之(一):变量替换
1. ${variable:-value} $variable如果为空或者未设置,则返回value的值;[root@k8s-node1 ~]# vi koala.sh#!/bin/bashdeclare name[ -n "$name" ] && echo $name || echo '$name is null'echo "${name:-$HOSTN...
2020-03-27 17:40:00
429
原创 MQTT协议系列之(二):keep alive
MQTT Keep AliveMQTT includes a keep alive function that provides a workaround for the issue of half-open connections (or at least makes it possible to assess if the connection is still open).Keep ...
2020-03-13 17:58:37
737
原创 MQTT协议系列之(一):Quality of Service
What is Quality of Service?TheQuality of Service(QoS) level is an agreement between the sender of a message and the receiver of a message that defines the guarantee of delivery for a specific mess...
2020-03-13 17:50:30
715
原创 MongoDB系列之(三)sharding cluaster
1. 环境说明 主机名称 IP地址 OS版本 Role node1 172.16.100.51 CentOS7(kernel: 3.10.0-514.el7.x86_64) mongos service node2 172.16.100.5...
2020-03-05 16:56:21
218
原创 MongoDB系列之(二)replication set
1. 环境说明 主机名称 IP地址 OS版本 node1 172.16.100.52 CentOS7(kernel: 3.10.0-514.el7.x86_64) node2 172.16.100.53 CentOS7(kernel: 3.10.0-514.el7.x86_64) node3 ...
2020-02-18 15:34:24
526
原创 MongoDB系列之(一)mongodb 安装与配置
1. MongoDB的yum源配置 # vim /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-...
2020-02-18 12:08:38
149
原创 Mysql系统变量系列之(七)Cache and Limit
[mysqld]####### CACHES AND LIMITS #########sort_buffer_size = 2Mjoin_buffer_size = 2Mread_buffer_size = 4Mread_rnd_buffer_size ...
2020-02-14 13:32:09
137
原创 Mysql系统变量系列之(六)Log and Safety
【mysqld】############# SAFETY ##############skip_name_resolve = ON //跳过域名解析sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#local_infile ...
2020-02-14 13:12:58
170
原创 Mysql系统变量系列之(五) 路径相关的变量
[mysqld]############### PATH ##############basedir = /usr/ datadir = /var/lib/mysql //mysql的数据存...
2020-02-14 12:58:27
167
原创 Mysql系统变量系列之(四)InnoDB
[mysqld]############# INNODB #############innodb_buffer_pool_size = 4G //innodb缓存池大小设置innodb_io_capacity = 4000 //innodb每秒的io次数设置innodb_max_dirty_pages_pct...
2020-02-14 12:26:24
378
原创 Mysql应用系列之(二)基于nginx的负载均衡(Load Banlancer)
1. 环境准备:搭建mysql的multi-master环境,请参考Mysql应用系列之(一)多主集群(Multi-master) 安装nginx # yum install epel-release -y # yum install nginx2. 配置文件(/etc/nginx/nginx.conf)stream { ...
2020-01-21 11:29:56
380
原创 Mysql应用系列之(一)多主集群(Multi-master)
0. 环境说明 主机名称 IP地址 操作系统 node1 172.16.100.52 CentOS7 node2 172.16.100.53 CentOS7 node3 172.16.100.54 CentOS71. 安装相关软件包# yum install -y https://repo.percona.com/yu...
2020-01-20 14:24:28
834
原创 Mysql系统变量系列之(一)General
[mysqld]port = 3306 //服务器监听的端口server_id = 2 //服务器实例id,在主从集群环境中作为唯一标识read_only = ON //开启只读模式#super...
2020-01-14 17:57:25
151
原创 Mysql系统变量系列之(二)Binary Logging
1. 开启二进制日志:--log-bin[=base_name]Property Value Command-Line Format --log-bin=file_name Type File name Enables binary logging. With binary logging enabled, the server logs all stat...
2020-01-14 13:37:13
393
原创 Mysql系统变量系列之(三)Replication
1. 全局事务模式:gtid_modeoff:master不产生Normal_GTID,slave只接受来自master的ANONYMOUS_GTID; off_permissive:master不产生Normal_GTID,slave可以接受来自master的ANONYMOUS_GTID & Normal_GTID; on_permissive:master产生Normal_GT...
2020-01-13 16:03:52
192
原创 linux tools系列之(一)磁盘性能测试工具fio
1. 安装# yum install fio2. 命令参数说明:filename:指定设备名称,如/dev/sda; direct:是否使用直接IO; ioengine:I/O引擎,默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O; rw: I/O模式,随机读写(randrw),顺序读写(read,write),随机读(randread),随机写(...
2020-01-02 17:49:02
352
原创 mariadb应用系列之(三)基于maxscale的读写分离架构
1. 环境说明软件版本操作系统:CentOS Linux release 7.3.1611(Core) (3.10.0-514.el7.x86_64)MariaDB-server:10.2.30 maxscale:2.3.8硬件环境 node1 172.16.100.51 maxscale...
2019-12-31 15:00:28
710
1
原创 mariadb应用系列之(二)基于GTID的主从复制(Replication)
1. 环境说明软件版本 操作系统:CentOS Linux release 7.3.1611(Core) (3.10.0-514.el7.x86_64) MariaDB-server:10.2.30硬件环境 node2 172.16.100.52 node3 172.16.100.53 no...
2019-12-30 18:41:18
722
原创 mariadb应用系列之(一)mariadb-server和maxscale的安装
在线安装:# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.2"--mariadb-maxscale-version="2.3"# yum install MariaDB-servermaxs...
2019-12-30 17:17:32
310
原创 linux kernel基础系列之(七)direct io和aio
缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统的页缓存( page cache )中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。缓存 I/O 有以下这些优点:缓存 I/O 使用了操作系统内核缓冲区,在...
2019-12-26 15:18:11
432
原创 linux kernel基础系列之(六)虚拟内存VM
每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构。 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录。 ...
2019-12-26 10:48:44
190
原创 linux kernel基础系列之(五)文件系统FS
Linux 中的各种事物比如像文档、目录(Mac OS X 和 Windows 系统下称之为文件夹)、键盘、监视器、硬盘、可移动媒体设备、打印机、调制解调器、虚拟终端,还有进程间通信(IPC)和网络通信等输入/输出资源都是定义在文件系统空间下的字节流。一切都可看作是文件,其最显著的好处是对于上面所列出的输入/输出资源,只需要相同的一套 Linux 工具、实用程序和 API。你可以使用同一...
2019-12-26 10:29:28
710
原创 linux kernel基础系列之(四)互斥锁mutex
系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。Reference:https://www.jianshu.com/p/a7ddb2998b3b https://elixir.bootlin.com/linux/v2.6.18.8/sour...
2019-12-26 10:22:49
435
原创 linux kernel 数据结构系列之(四)位图bitmap
位图(bitmap)是一种非常有用的数据结构,在处理系统中的进程数管理、磁盘中的磁盘块管理、以及内存中的内存页的使用情况管理时非常有用。Reference:linux内核中的位图 https://elixir.bootlin.com/linux/v2.6.28.8/source/lib/bitmap.c https://elixir.bootlin.com/linux/v...
2019-12-26 10:14:31
449
原创 linux kernel 数据结构系列之(三)等待队列wait_queue
Linux内核的等待队列是非常重要的数据结构,在内核驱动中广为使用,它是以双循环链表为基础数据结构,与进程的休眠唤醒机制紧密相联,是实现异步事件通知、跨进程通信、同步资源访问等技术的底层技术支撑。研究等待队列这个内核非常基础的数据结构,对于加深理解Linux非常有帮忙,等待队列有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t),两者都有一个...
2019-12-25 17:42:50
311
原创 linux kernel 数据结构系列之(二)红黑树rbtree
平衡二叉树(BalancedBinary Tree或Height-Balanced Tree)又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树上结点的平衡因子BF(BalanceFactor)定义为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有结点的平衡因子只可能是-1、0和1。(此段...
2019-12-25 17:15:58
302
原创 linux kernel 数据结构系列之(一)双向链表list_head
在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head。虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作list_head 的通用接口很容易实现代码的重用。下面就是kernel中的list_head结构定义:struct list_head { struct list_head *ne...
2019-12-25 17:07:00
139
转载 linux kernel基础系列之(三)计算机底层知识拾遗
楔子: 这个系列会总结计算机,网络相关的一些重要的底层原理。很多底层原理大家上学的时候都学过,但是在学校的时候大部分的同学都是为了应付考试而学习,过几天全忘了。随着工作的时间越久,越体会到这些基础知识的重要性。做技术和练武功一样,当你到了一定的阶段,也会遇到一个瓶颈,突破了你的眼界就会大不同,突破不了,只能困在原地无法成长。我自己深有体会,这些基础知识,底层原理是助你打破瓶颈的灵丹妙药。...
2019-12-25 16:46:19
197
原创 linux kernel基础系列之(二)IO复用select与epoll机制
1.select的缺陷 高并发的核心解决方案是1个线程处理所有连接的“等待消息准备好”,这一点上epoll和select是无争议的。但select预估错误了一件事,当数十万并发连接存在时,可能每一毫秒只有数百个活跃的连接,同时其余数十万连接在这一毫秒是非活跃的。select的使用方法是这样的: 返回的活跃连接 ==select(全部待监控的连接)。 什么...
2019-12-25 16:32:01
131
原创 linux kernel基础系列之(一)调度原理
1. 数据结构:优先级队列struct prio_array { unsigned int nr_active; 表示等待执行的进程总数 unsigned long bitmap[BITMAP_SIZE]; 一个unsigned long在内核中只有32位哈,大家要跟64位OS上的C程序中的long区分开,那个是64位的。那么这个bitmap是干什么的呢?它是用位...
2019-12-25 16:01:49
125
原创 mariadb基础系列之(三)查询缓存管理
MySQL查询缓存是MySQL中比较独特的一个缓存区域,用来缓存特定Query的整个结果集信息,且共享给所有客户端。为了提高完全相同的Query语句的响应速度,MySQL Server会对查询语句进行Hash计算后,把得到的hash值与Query查询的结果集对应存放在Query Cache中。当MySQL Server打开Query Cache之后,MySQL Server会对接收到的每一个SEL...
2019-12-25 15:24:42
265
原创 mariadb基础系列之(二)缓存管理
楔子: 我们知道InnoDB使用buffer pool来缓存从磁盘读取到内存的数据页。buffer pool通常由数个内存块加上一组控制结构体对象组成。内存块的个数取决于buffer pool instance的个数,不过在5.7版本中开始默认以128M(可配置)的chunk单位分配内存块,这样做的目的是为了支持buffer pool的在线动态调整大小。Buffer pool的每个内...
2019-12-25 13:49:33
245
原创 mariadb基础系列之(一)索引管理
1. B+tree算法原理B-tree,B是balance,一般用于数据库的索引。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。而B+tree是B-tree的一个变种,大名鼎鼎的MySQL就普遍使用B+tree实现其索引结构。 那数据库为什么使用这种结构? 一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这...
2019-12-25 11:36:36
125
原创 mariadb系统变量之(三)redo log
1. redo日志大小配置:innodb_log_file_sizeDescription:Size in bytes of eachInnoDB redo logfile in the log group. The combined size can be no more than 4GB prior toMariaDB 10.0, and no more than 512GB in...
2019-12-23 17:19:36
1232
原创 mariadb系统变量之(二)性能优化
1. 最大连接数配置:max_connectionsDescription:The maximum number of simultaneous client connections. See alsoHandling Too Many Connections. Note that this value affects the number of file descriptors requ...
2019-12-23 16:32:28
434
原创 mariadb系统变量之(一)通用配置
1. 数据目录指令:datadirDescription:Directory where the data is stored. Commandline:--datadir=pathor-h path Scope:Global Dynamic:No Type:directory name2. pid文件位置:pid_fileDescription:Full pat...
2019-12-23 16:09:29
1035
原创 nginx配置指令之https
1. 虚拟主机的证书配置Syntax: ssl_certificatefile; Default: — Context: http,server Specifies afilewith the certificate in the PEM format for the given virtual server.2. 虚拟主机的私钥文件Syntax:...
2019-12-16 16:35:45
123
原创 nginx配置指令之HTTP load balancer
1. 反向代理配置Syntax: proxy_passURL; Default: — Context: location,if in location,limit_except Sets the protocol and address of a proxied server and an optional URI to which a location s...
2019-12-12 16:38:34
193
原创 nginx配置指令之location
1. 请求资源的location配置Syntax: location[=|~|~*|^~]uri{ ... }location@name{ ... } Default: — Context: server,location Sets configuration depending on a request URI.The match...
2019-12-12 16:09:41
147
原创 nginx配置指令之virtual host
1. 虚拟主机Syntax: server{ ... } Default: — Context: http Sets configuration for a virtual server. There is no clear separation between IP-based (based on the IP address) and name-based ...
2019-12-12 15:24:57
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人