自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 Zabbix 模板添加新的监控项item 监控磁盘使用率

监控项的含义监控项(items)就是监控指标获取数据的方式,数据类型,更新数据的时间间隔,历史数据的保留时间,趋势数据保留时间等等。另外一个就是监控指标key,它是构成监控项的一个元素,在模板里面必须是唯一的。MariaDB [(none)]> select * from zabbix.items limit 1\G;*************************** 1. row *************************** it...

2020-06-30 21:49:35 1473

转载 Redis 优化之swap分区

swappiness 参数说明swap对于操作系统来比较重要, 当物理内存不足时, 可以将一部分内存页进行swap操作, 已解燃眉之急。 但世界上没有免费午餐, swap空间由硬盘提供, 对于需要高并发、 高吞吐的应用来说, 磁盘IO通常会成为系统瓶颈。 在Linux中, 并不是要等到所有物理内存都使用完才会使用到swap, 系统参数swppiness会决定操作系统使用swap的倾向程度。 swappiness的取值范围是0~100, swappiness的值越大, 说明操作系统可能使用swa...

2020-06-30 21:06:56 2104

转载 Docker 鸟瞰docker生态系统

鸟瞰容器生态系统一谈到容器,大家都会想到 Docker。Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,大家也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素。大致来看,容器生态系统包含核心技术、平台技术和支持技术。容器核心技术容器核心技术是指能够让 container 在 host 上运行起来的那些技术。这些技术包括容.

2020-06-30 17:36:48 563 1

原创 MySQL xtrabackup全量备份+增量备份+二进制日志恢复实战

做增量备份前,首先要进行一次全量备份。全量备份:[root@localhost ~]# innobackupex --user=root --password=root --no-timestamp --bakcup /backup/full[root@localhost full]# cat xtrabackup_binlog_infomysql-bin.000002 411[root@localhost full]# cat xtrabackup_checkpointsbackup_.

2020-06-30 16:14:04 602

原创 Redis 优化之内存分配控制 vm.overcommit_memory

vm.overcommit_memoryRedis在启动时可能会出现这样的日志:WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl ...

2020-06-29 20:43:18 8955 2

原创 Linux 终于有人把CPU上下文切换说清楚了

前言多个进程竞争CPU就是一个经常被我们忽视的问题。进程CPU的时候并没有真正运行,为什么还会导统的负载升高呢?你应该已经猜到了,CPU上下文切换就是罪魁祸首。我们都知道,Linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行。当然, 这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将CPU轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU 寄存器和程...

2020-06-28 20:50:00 2319 2

原创 Mysql xtrabackup工具详解和使用说明

Xtrabackup介绍  MySQL冷备、mysqldump、mydumper、MySQL热拷贝都无法实现对数据库进行增量备份。在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大,需要定制数据备份策略。例如每周实用完整备份,周一到周六实用增量备份。而Percona-Xtrabackup就是为了实现增量备份而出现的一款主流备份工具,xtrabakackup有2个工具,分别是xtrabakup、innobakupe。

2020-06-28 17:10:48 1096

原创 Zabbix 分布式zabbix-proxy主动模式

zabbix proxy代理概述zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。zabbix proxy 使用场景: 监控远程区域设备 监控本地网络不稳定区域 当 za...

2020-06-26 10:43:03 4339

原创 案例分析 平均负载与CPU使用率

平均负载与CPU使用率现实工作中,我们经常容易把平均负载和CPU使用率混淆,所以在这里,我也做一个区分。可能你会疑惑,平均均负载代表的是活跃进数,那平均负载高了,不就意味着CPU使用率高吗?我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程。而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:•CPU密集型进程,使用大量CPU会导致平均.

2020-06-25 19:29:03 513 2

原创 TCMalloc 优化 Nginx 的性能

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个(gperftools四个工具分别是:TCMalloc、heap-checker、heap-profiler和cpu-profiler),这个工具是开源的,以源码形式发布。如果觉得自己维护一个内存分配器麻烦的话,可以考虑将TCMalloc静态库连接到你的程序中。使用的时候和g

2020-06-25 16:48:04 698

原创 MySQL myloader工具介绍与使用

myloader恢复主要流程1、首先由myloader主线程完成建库建表,依次将备份目录下建库和建表文件执行应用到目标数据库实例中;2、接着myloader主线程会生成多个工作线程,由这些工作线程将所有database.table.*.sql文件中的记录导入到对应表中,这个阶段是并行的,并行粒度为文件,工作线程完成所有database.table.*.sql 文件数据导入后销毁;3、最后主线程将创建函数、存储进程、事件,以及创建表视图、触发器的文件执行导入对应数据库和表中。myloade.

2020-06-25 14:47:48 3662 1

转载 如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了

CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。当 CPU 过于繁忙,就像“人脑”并发处理过多的事情,会降低做事的效率,严重时甚至会导致崩溃“宕机”。因此,理解 CPU 的工作原理,合理控制负载,是保障系统稳定持续运行的重要手段。CPU 的物理核与逻辑核一台机器可能包含多块 CPU 芯片,多个 CPU 之间通过系统总线通信。一块 CPU 芯片可能包含多个物理核,每个物理核都是一个实打实的运算核心.

2020-06-24 22:20:09 1060

转载 如何诊断 Linux 服务器的性能?10个工具助力你

对 Linux 的性能诊断当你为了解决一个性能问题登录到一台 Linux 服务器:在第一分钟你应该检查些什么?在 Netflix,我们有一个巨大的 EC2 Linux 云,以及大量的性能分析工具来监控和诊断其性能。其中包括用于云监控的 Atlas,以及用于按需实例分析的 Vector。虽然这些工具可以帮助我们解决大多数问题,但我们有时仍需要登录到一个服务器实例,并运行一些标准 Linux 性能工具。在这篇文章中,Netflix Performance Engineering...

2020-06-24 20:37:27 257

原创 Linux pidstat对运行进程实时监控

pidstat 概述pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。pidstat 安装pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。...

2020-06-24 17:17:08 963

原创 Linux 磁盘空间释放问题

问题说明IDC里的一台服务器的/分区使用率爆满了!已达到100%!经查看发现有个文件过大(80G),于是在跟有关同事确认后rm -f果断删除该文件。但是发现删除该文件后,/分区的磁盘空间压根没有释放出来,使用率还是100%!这是为什么呢??[root@linux-node1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 ...

2020-06-24 10:28:34 651

原创 Nginx gzip_static模块 避免零拷贝失效

gzip_static on|offnginx对于静态文件的处理模块:该模块可以读取预先压缩的gz文件,这样可以减少每次请求进行gzip压缩的CPU资源消耗。该模块启用后,nginx首先检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容。为了要兼容不支持gzip的浏览器,启用gzip_static模块就必须同时保留原始静态文件和gz文件。这样的话,在有大量静态文件的情况下,将会大大增加磁盘空间。我们可以利用nginx的反向代理功能实现只保留gz文件。使用sen...

2020-06-24 10:13:14 1769

原创 Shell grep(2)

Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。语法参数Grep常用参数详解如下:-a 以文本文件方式搜索;-c 计算找到的符合行的次数;-i 忽略大小写;-n 顺便输出行号;-v 反向选择,即显示不包含匹配文本的所有行;-h 查询多文件时不显示文件名;-l 查询多文件时只输出...

2020-06-24 09:22:19 1287

原创 Zabbix 实现微信报警

Zabbix没有为我们提供微信报警的媒介,我们需要自己创建,通过脚本来发消息。主要分为三部分:(1)zabbix server端配置报警媒介,以及发给谁 (2)微信报警脚本 (3)在企业微信创建应用API(供zabbix报警调用)以及用户的账号(收报警信息)配置Zabbix微信报警媒介Administration-->Media Types-->Create Media Type脚本加入三个参数:{ALERT.SENDTO}发送给谁、{ALERT.SUBJECT}发送...

2020-06-23 17:24:19 537

转载 Redis sentinel的三个定时监控任务

一套合理的监控机制是Sentinel节点判定节点不可达的重要保证, Redis Sentinel通过三个定时监控任务完成对各个节点发现和监控:1) 每隔10秒, 每个Sentinel节点会向主节点和从节点发送info命令获取最新的拓扑结构, 如图所示...

2020-06-23 11:28:23 675

原创 Nginx I/O优化之 sendfile 零拷贝

指令说明语法: sendfile on | off;默认值: sendfile off;上下文: http,server,location,if in location指定是否使用sendfile系统调用来传输文件。sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很高,被称之为零拷贝。原理解释read/write在传统的文件传输方式(read、write/send方式),具体流程细.

2020-06-23 11:03:28 1871

原创 Linux 性能优化 工具mpstat 多核CPU性能分析工具

mpstatmpstat是Multiprocessor Statistics的缩写,是实时监控工具,报告与cpu的一些统计信息这些信息都存在/proc/stat文件中,在多CPU系统里,其不但能查看所有的CPU的平均状况的信息,而且能够有查看特定的cpu信息,mpstat最大的特点是:可以查看多核心的cpu中每个计算核心的统计数据;而且类似工具vmstat只能查看系统的整体cpu情况。(mpstat是常用的多核CPU性能分析工具,用来实时查看CPU的性能指标以及所有CPU的平均指标)#要使用sys

2020-06-22 16:35:52 1047

原创 Nginx I/O优化之异步IO与线程池

异步I/O传统:在用户空间发起了read调用,用户空间这个进程就会被阻塞,阻塞之后就开始去读磁盘,将磁盘内容读到磁盘高速缓冲区,然后再读到用户缓冲区。整个这个流程结束再唤醒该用户进程,该用户进程再去做其他操作了。异步I/O:在调取read的时候,用户进程可以处理其他任务,不会阻塞。#在开启异步I/O的时候可以设定线程池Syntax: aio on | off | threads[=pool];Default: aio off;Context: http, server, location

2020-06-22 09:58:48 1125 1

原创 Linux stress性能压测工具使用

Stressstress 是压力测试工具,是Posix系统下生成CPU/Menory/IO/Disk负载的工具,这里我们用作异常进程模拟平均负载升高的场景Stress 安装[root@localhost ~]# yum install -y epel-release[root@localhost ~]# yum install stress -yStress 参数说明-? 显示帮助信息-v 显示版本号-q 不显示运行信息-n,--dry-run 显示已经完成的指令执行情况.

2020-06-21 14:55:13 1769

原创 MySQL mydumper使用方法详解

mysqldumper而你的MySQL版本应该更新到5.5版本以上,mydumper作为一个实用工具,能够良好支持多线程工作,可以并行的多线程的从表中读入数据并同时写到不同的文件里这使得它在处理速度方面快于传统的mysqldump。mysqldumper其特征之一是在处理过程中需要对列表加以锁定,如果我们需要在工作时段执行备份工作,那么会引起DML阻塞不过现在的MySQL一般都是主从结构,备份也大部分在从上进行,所以锁的问题可以不用考虑因此mydumper能更优秀快速的完成备份任务mydumpe

2020-06-21 12:56:08 2204

转载 Nginx 如何善用缓存提升系统的健壮性?(上)

分布式系统提升可用性时,最有效的方案就是在空间维度上,将资源复制一份作为缓存,并把缓存放在离用户更近的地方。这样,通过缩短用户的访问路径,不只可以降低请求的时延,多份资源还能提升系统的健壮性。比如WEB服务中的CDN就是这样一个缓存系统。Nginx由于具有下面3个特性,因此是最合适的缓存系统:l首先,高并发、低延迟赋予了Nginx优秀的性能;l其次,多进程架构让Nginx具备了很高的稳定性;l最后,模块化的开源生态,以及从开放中诞生的Openresty、Kong等其他体...

2020-06-20 13:50:25 333

转载 【译】提高nginx9倍性能的线程池 thread_pool

在nginx的官网看到一篇介绍nginx原理的文章,这篇文章比较老了是15年发布的,国内有人翻译过但是有些小瑕疵,这里更正出来发布在我个人的文章里供大家参考,这篇文章详细的介绍了nginx线程池的原理以及设计思路,在最后通过详细的实验数据来告诉我们通过线程池提升的性能以及分析了应该使用线程池的场景。在日后的其他领域依然很有借鉴意义。点我看源文(Thread Pools in NGINX Boost Performance 9x!)大家都知道NGINX使用异步以及事件驱动的方式来处理请求,这意味.

2020-06-19 11:17:38 1075

原创 Zabbix 超级详细的教你配置主动模式教程

在nginx的官网看到一篇介绍nginx原理的文章,这篇文章比较老了是15年发布的,国内有人翻译过但是有些小瑕疵,这里更正出来发布在我个人的文章里供大家参考,这篇文章详细的介绍了nginx线程池的原理以及设计思路,在最后通过详细的实验数据来告诉我们通过线程池提升的性能以及分析了应该使用线程池的场景。在日后的其他领域依然很有借鉴意义。点我看源文(Thread Pools in NGINX Boost Performance 9x!)大家都知道NGINX使用异步以及事件驱动的方式来处理请求,这意味.

2020-06-19 10:11:24 4334

原创 浅谈Linux系统平均负载

前言每次发现系统变慢时,我们通常做的第一件事,就锄行top或者uptime命令,来了解系统 的负载情况。比如像下面这样,我在命令行里输入了 uptime命令,系统也随即给出了结果。$ uptime02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88但我想问的是,你真的知道这里每列输出的含义吗?相信你对前面的几列比较熟悉,它们分别是当前时间、系统运行时间以及正在登录用户数.02:34:03 //当前时...

2020-06-18 23:33:28 301

转载 Zabbix 监控系统入门简介

Zabbix监控系统入门简介Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位并解决存在的各种问题。Zabbix分布式监控系统的优点如下:支持自动发现服务器和网络设备; 支持底层自动发现; 分布式的监控体系和集中式的WEB管理; 支持主动监控和被动监控模式; 服务器端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD, OpenB

2020-06-18 17:39:14 433

原创 redis5 超详细的集群扩容攻略

6380为主节点[root@localhost ~]# cd /usr/local/[root@localhost local]# mkdir -p redis-cluster[root@localhost ~]# cd /usr/local/redis-cluster/[root@localhost redis-cluster]# mkdir -p 6380 6381[root@localhost redis-cluster]# /usr/src/redis-stable/utils/.

2020-06-18 11:46:29 491

原创 Redis5 教你一步一步搭建集群

集群环境6台机器,每台机器上跑一个redis实例 server1 192.168.179.99 redis1 server2 192.168.179.100 redis2 server3 192.168.179.101 redis3 server4 192.168.179.102..

2020-06-17 23:05:15 337 1

原创 一篇文章搞懂RAID磁盘阵列

RAID概念磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置..

2020-06-17 17:31:24 852

原创 Nginx I/O优化之直接I/O directio

直接IO绕开磁盘高速缓存顾名思义直接落盘 直接io,绕开磁盘高速缓存 正常情况下没有开启直接I/O,用户进程调用read方法,先从磁盘读取出到内核的缓冲区即磁盘高速缓存,然后读到用户存储空间缓冲区,这里其实是读了2次哦(先到磁盘高速缓存再到用户缓冲区),写和读一样也是两次。直接I/O让我们绕开了内核缓冲区,即磁盘高速缓存,当我们读的时候直接从磁盘读进来,写的时候从用户缓冲区直接写入磁盘。总结:我们可以让读写操作绕过内核缓冲区,直接读写用户缓冲去,提高速度,避免磁盘缓存页的拷贝 传统走缓冲区

2020-06-17 12:04:03 1716

转载 详细的网络协议之ARP请求

对于 ARP 协议,你想知道的,可能包括以下几点: ARP 是啥 为啥需要 ARP ARP 是怎么工作的 ARP 报文格式长啥样 ARP 安全吗 有哪些命令可以操作 ARP ARP 有哪些内核配置参数 带着这些问题,下面我们就来一一解答。ARP 是啥ARP 全称为 Address Resolution Protocol ,即地址解析协议,主要用于根据 IP 地址求出主机所对应的物理地址(或者叫 MAC 地址)。它还有...

2020-06-17 10:06:06 8810

转载 Redis Sentinel部署规则和API使用

如何监控多个主节点Redis Sentinel可以同时监控多个主节点, 具体拓扑图类似于图。配置方法也比较简单, 只需要指定多个masterName来区分不同的主节点即可, 例如下面的配置监控monitor master-business-1(10.10.xx.1: 6379) 和monitor master-business-2(10.10.xx.2: 6379) 两个主节点:sentinel monitor master-business-1 10.10.xx.1 6379 2...

2020-06-16 21:01:34 351

原创 Mysql备份原理与工具mysqldump之--single-transaction,--master-data

MySQL备份原理数据备份是数据安全的底线,在任何场景下面,无论是上线后的数据回滚,数据丢失都能够有效的止损,将损失降到最低程度。衡量数据备份与恢复的两个重要指标:对于

2020-06-16 10:53:09 11600 3

原创 LVS 前传之你需要了解的七层网络协议

网络基本概念OSI模型OSI 模型(Open System Interconnection model)是一个由国际标准化组织?提出的概念模型,试图?供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层,每层都可以?供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准——TCP/IP 协议。OSI 模型各层间关系和通讯时的数据流向如图所示:七层模型是为了更好的管理数据七层模型中的数据发送是从上层往下层...

2020-06-16 09:58:31 439

原创 Mysql MGR 多主模式下的限制

部署MGR的需求 基础架构innodb存储引擎数据必须存储在innodb存储引擎内我们通过设置如下参数来禁用其他存储引擎disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"主键每张表都必须定义一个主键或者等价的非空的唯一键IPv4网络服务器必须支持IPv4网络网络性能MGR组中的各个服务器必须相互联通且网络性能要求较高数据库配置要求binlog日志必须开启二进制日志.

2020-06-15 11:49:48 1415

原创 Zabbix 自动发现和自动注册实现批量添加主机

zabbix自动发现和自动注册熟练通过Zabbix监控平台监控单台客户端之后,企业中有成千上万台服务器,如果手工添加会非常耗时间,造成大量的人力成本的浪费,有没有什么好的自动化添加客户端的方法呢?Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服务器添加至Zabbix监控平台,省去人工手动频繁的添加,节省大量的人力成本。(自动发现规则由服务端主动发起,Zabbix

2020-06-15 10:42:11 1192

转载 LVS 前话 你需要理解的网络基础知识

阿里妹导读:本文是一个理论过度到实践的典型案例,借助程序员经常遇到的一个问题——网络为什么不通,来具体说明怎么将书本上的死知识真正变成我们解决问题的能力。大学学到的基本概念我相信你脑子里关于网络基础知识的概念都在下面这张图中。知识内容有点乱,感觉都认识,又都模模糊糊,更谈不上将内容转化成生产力或是用来解决实际问题了。这是因为知识没有贯通、没有实践、没有组织。上图中知识点的作用在RFC1180[1]中讲得无比通俗易懂了。看第一遍的时候也许你就看懂了,但是一个月后又忘记了。其实这些东西...

2020-06-13 13:08:35 329

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除