Home >
  • 【分享】Kubernetes Pod部署调度策略

    Kubernetes是Google开源的Docker容器集群管理系统,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能。在应用部署这块,类似于其他系统,Kubernetes也提供了一些控制容器部署的方式,本文主要通过实践的方式介绍一下kubernetes的应用在部署时的部署策略。 几个概念: Pod:是Kubernetes最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例。比如一个web站点应用由前端、后端及数据库构建而成,这三个组件将运行在各自的容器中,那么我们可以创建包含三个container的pod...
    阅读全文 →
  • 【工作】Keepalived 重定向日志输出位置

    有时候由于为了排查问题,我们需要查看keepalived的输出日志,而默认keepalived的日志输出到/var/log/messages里面,和系统日志一起,查看起来非常不方便,所以需要将日志路径修改到合适的位置。 Keepalived 默认的配置文件路径在/etc/keepalived/keepalived.conf Keepalived 默认的日志文件保存在/var/log/messages 1.修改 keepalived 服务配置 # cat /etc/sysconfig/keepalived # Options for keepalived. See `keepalived --help' output and keepalived(8) and # keepalived.conf(5) man pages for a list o...
    阅读全文 →
  • 【分享】如何知道mysql中sql语句索引是否生效

    通常我们使用explain 命令来检验sql语句执行状况:   mysql> explain select * from a; +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+ | 1 | SIMPLE | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | | +----+-------------+----...
    阅读全文 →
  • 【分享】Mysql分区表的管理与维护

    改变一个表的分区方案只需使用alter table 加 partition_options 子句就可以了。和创建分区表时的create table语句很像 创建分区表: CREATE TABLE trb3 ( id INT, name VARCHAR(50), purchased DATE) PARTITION BY RANGE( YEAR(purchased) ) ( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (1995), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN (2005) ); 创建插入数据存储过程: delimiter $$ drop procedure if exists pr_trb3$$ create procedure pr_trb3...
    阅读全文 →
  • 【案例】MySQL5.6分区数量太多引发的血案

    一个月之前,Scott和同事们发现公司有一个MySQL MHA集群的master(假设master机器名为hostA)每隔一周左右就会挂一次(指MySQL挂掉),在几周内,MHA来回切了好几次。 按照国际惯例,Scott按照如下顺序去查问题到底出在哪里: (1)先翻MySQL error log,没有发现异常 (2)再翻Linux系统日志文件,果然,翻到了下面的内容: Nov 26 13:05:38 hostA kernel: mysql invoked oom-killer: gfp_mask=0x280da, order=0, oom_adj=0, oom_score_adj=0 ...此处内容省略N行... Nov 26 13:05:38 hostA kernel: Out of ...
    阅读全文 →
  • 【分享】Mysql分区表使用的一些限制和需要注意的细节

    mysql分区策略都基于两个非常重要的假设:查询都能够过滤(prunning)掉很多额外的分区、分区本身并不会带来很多额外的代价。而事实证明,这两个假设在某些场景下会有问题。下面介绍一些可能会遇到的问题。 NULL位会使分区过滤无效 关于分区表一个容易让人误解的地方就是分区的表达式的值可以是NULL:第一个分区是一个特殊分区。假设按照PARTITION BY     RANGE YEAR(order_date)分区,那么所有order_date为NULL或者是一个非法值的时候,记录都会被存放到第一个分区。现在假设有   下面的查询:WHERE order_date B...
    阅读全文 →
  • 【分享】MySQL 分表和分区原理及应用方法详解

    摘星怪  /
     / 数据存储
    日常开发中课课家经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。 1. 什么是什么是分表和分区? 有什么区别和联系? 1.1 分表 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,每个表都对应三个文件,MYD数据文件,.MYI索引文件,.frm表结构文件。这些...
    阅读全文 →
  • 【分享】Mysql分区举例—基于时间字段进行分区的方案

    摘星怪  /
     / 数据存储
    MySQL支持的分区类型一共有四种:RANGE,LIST,HASH,KEY。其中,RANGE又可分为原生RANGE和RANGE COLUMNS,LIST分为原生LIST和LIST COLUMNS,HASH分为原生HASH和LINEAR HASH,KEY包含原生KEY和LINEAR HASH。关于这些分区之间的差别,改日另写文章进行阐述。 最近,碰到一个需求,要对表的时间字段(类型:datetime)基于天进行分区。于是遍历MySQL官方文档分区章节,总结如下: 实现方式 主要是以下几种: 1. 基于RANGE 2. 基于RANGE COLUMNS 3. 基于HASH 测试数据 为了测试以上三种方案,特构造了100万的测试数...
    阅读全文 →
  • 【分享】记住,永远不要在MySQL中使用“utf8”编码

    最近工作中我遇到了一个 bug,我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串,然后出现了一个离奇的错误: Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1 我用的是 UTF-8 编码的客户端,服务器也是 UTF-8 编码的,数据库也是,就连要保存的这个字符串“😃 <…”也是合法的 UTF-8。 问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 “utf8”只支持每个字符三个字节,而真正的 UTF-8 是每个字符最多四字节 MySQL 一直没有修复这个 bug,他...
    阅读全文 →
  • 【分享】LVS DR/TUN 模式下的ARP配置问题总结

    摘星怪  /
     / 工作记录
    LVS ARP问题描述: 在LVS的DR模式下,有一个必须要处理的问题就是real server上的ARP响应问题。其实,这个问题不只是LVS,其他的L4 Switch方案比如Foundry的ServerIron,也需要设置real server上的ARP响应。因为这是这种方案的结构决定的。     根据LVS官方说明,在LVS 的DR模式下,前端的director接收到用户请求以后,director根据后端real server的负载情况,动态地选择一台real server,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出的real server的MAC地址,再将修改后的数据帧在后端本地局域网上发...
    阅读全文 →
  • 【分享】Logrotate + syslogd 日志轮换管理工具总结

    Logrotate的介绍 logrotate是在规定时间到了之后才来进行日志文件的轮替,所以logrotate程序是挂在cron下面进行的,/etc/cron.daily/logrotate记录了每天要进行的日志文件轮替行为。 logrotate的配置文件: /etc/logrotate.conf /etc/logrotate.d/ logrotate.conf 是主要的参数文件,logrotate.d 是一个目录,该目录里面的所有数据都会被主动读入/etc/logrotate.conf 当中来进行。 另外,在/etc/logrotate.d/ 里面的文件中,如果没有指定一些详细的设置,则以 /etc/logrotate.conf 的规定来指定为默认值。 显而...
    阅读全文 →
  • 【分享】keepalived 配置文件(V1.2.24) 中文版详解

    【写在前面】 网上看到的一篇非常不错的介绍keepalived配置文件参数的文章,转载记录研究用 原文链接:https://blog.csdn.net/fruler/article/details/53334082   【文章正文】 创建本文的目的 笔者最近在详细研究keepalived软件,发现网上关于这方面的详细描述较少,需要案例配置参数在新版本中已经失效。keepalived官方网站提供的文档资料,虽然以案例为基础,提供了较为常用的参数配置,但是笔者发现许多参数并未提及。作为IT行业的人,似懂非懂只能做一个三流的技术人员,本着刨根问题的精神,创建了该篇文章...
    阅读全文 →
  • MySQL ”Innodb_buffer_pool_siz “缓存参数优化总结

    无论是对于哪一种数据库来说,缓存技术都是提高数据库性能的关键技术,物理磁盘的访问速度永 远都会与内存的访问速度永远都不是一个数量级的。通过缓存技术无论是在读还是写方面都可以大大提 高数据库整体性能。   注意:在MySQL  5.5 、5.6 等以前的版本里,调整innodb_buffer_pool_size大小必须重启mysql进程才可以生效,而在MySQL  5.7 版本里,可以直接动态设置,但是在调整Buffer_Pool期间,用户的请求会阻塞,直到调整完毕,所以请勿业务高峰期调整,可选择在业务低峰期调整。 Innodb_buffer_pool_size 的合...
    阅读全文 →
  • 【分享】MySQL报ERROR : (2006, ‘MySQL server has gone away’)的问题

    mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。 造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入)。 产生这个问题的原因有很多,总结下网上的分析: 原因一. MySQL 服务宕了 判断是否属于这个原因的方法很简单,进入mysql控制台,查看mysql的运行时长 mysql> show global status like 'uptime';...
    阅读全文 →
  • 【分享】linux中关于ls -l命令显示的total的含义解释

    当在linux里使用ll或者ls -l命令查看文件详情时,会在第一行看到如下的字样:  total 20  drwxr-xr-x 8 user rnd 134 Apr 27 04:40 ./  drwxr-xr-x 6 user rnd 59 Apr 27 07:56 ../  drwxr-xr-x 8 user rnd 4096 May 3 08:13 .git/  -rw-r--r-- 1 user rnd 1374 Apr 27 04:40 .gitignore  -rw-r--r-- 1 user rnd 2710 Apr 27 04:40 info  drwxr-xr-x 3 user rnd 18 Apr 27 04:40 platform/  -rw-r--r-- 1 user rnd 163 Apr 27 04:40 project  drwxr-xr-x 4 user rnd 30 Apr 27 04:40 testsupport/  drwxr-xr-x 7 ...
    阅读全文 →
  • 【分享】MySQL (2013, ‘Lost connection to MySQL server during query’)问题详解

    MySQL 在线上的一个新的部署的服务中报: pymysql.err.OperationalError (2013, 'Lost connection to MySQL server during query') 翻阅官方文档解释了这么几种可能性问题,详见:https://dev.mysql.com/doc/refman/5.7/en/error-lost-connection.html 连接 MySQL 服务的网络有问题 网络问题会导致 MySQL 的 connection 无故断掉,会报这个错误,所以首先检查 client 服务到 MySQL 服务是不是延迟很高。 读取或写入很多行数据,导致数据传输超时 MySQL net_read_timeout 和 net_write_timeout 控制一次连接传...
    阅读全文 →
  • 【分享】增强 Nginx 的 SSL 安全性

    本文向你介绍如何在 nginx 服务器上设置健壮的 SSL 安全机制。我们通过禁用 SSL 压缩来降低 CRIME 攻击威胁;禁用协议上存在安全缺陷的 SSLv3 及更低版本,并设置更健壮的加密套件(cipher suite)来尽可能启用前向安全性(Forward Secrecy);此外,我们还启用了 HSTS 和 HPKP。这样我们就拥有了一个健壮而可经受考验的 SSL 配置,并可以在 Qually Labs 的 SSL 测试中得到 A 级评分。 如果不求甚解的话,可以从 https://cipherli.st 上找到 nginx 、Apache 和 Lighttpd 的安全设置,复制粘帖即可。 本教程在 Digi...
    阅读全文 →
  • 【分享】LVS在大规模网络环境中的应用

    9月13日,阿里云课堂第一期在北京准时开课,到场与会人员众多,现场气氛非常热烈。阿里云三位讲师为大家献上了精彩的演讲,参会者也纷纷积极参与现场互动,通过问答交流,收获颇丰。应广大用户要求,我们将云课堂讲师现场分享内容全文整理出来,供大家参考。阿里云课堂会继续在全国各地陆续开课,欢迎大家继续支持! 1、 SLB总体架构 LVS本身是开源的,我们对它进行了多方面的改进,并且也已开源-https://github.com/alibaba/LVS 接下来我们看一下LVS在整个SLB中的位置在哪里,整个图是SLB的架构图。SLB功能比较...
    阅读全文 →
  • 【分享】Nginx防御DDOS攻击的方法总结

    前言 Nginx是一款轻量级的Web服务器,由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引Rambler使用。 其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网站服务器中表现较好。 防御DDOS是一个系统工程,攻击花样多,防御的成本高瓶颈多,防御起来即被动又无奈。DDOS的 特点是分布式,针对带宽和服务攻击,也就是四层流量攻击和七层应用攻击,相应的防御瓶颈四层在带宽,七层的多在架构的吞吐量。 对于七层的应用攻击,我们还 是可以做一些配置来防御的,例如前端是...
    阅读全文 →