puppet 运维自动化之schedule管理

【导读】

在熟悉puppet过程中,我们可以了解到puppet管理各种资源,像常用的file,service,,user,group等,

本次是sky是给大家讲下puppet运维自动化之schedule管理,schedule英文单词的意思是调度,计划

安排,sky想到这就想起crontab,在linux中大家都知道,crontab可以调度,进行计划安排,那schedule

和cron有啥不同,为什么puppet管理中有schedule和cron资源呢?

【schedule 参数说明】

schedule  调度puppet运行时间。

又拍网技术架构中的分库设计

又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章里,我要介绍一些我们在技术上的积累。

MySQL数据库如何杀掉空闲事务

我们经常遇到一个情况,就是网络断开或程序Bug导致COMMIT/ROLLBACK语句没有传到数据库,也没有释放线程,但是线上事务锁定等待严重,连接数暴涨,尤其在测试库这种情况很多,线上也偶有发生,于是想为MySQL增加一个杀掉空闲事务的功能。

 

那么如何实现呢,通过MySQL Server层有很多不确定因素,最保险还是在存储引擎层实现,我们用的几乎都是InnoDB/XtraDB,所以就基于Percona来修改了,Oracle版的MySQL也可以照着修改。

 

需求:
1. 一个事务启动,如果事务内最后一个语句执行完超过一个时间(innodb_idle_trx_timeout),就应该关闭链接。
2. 如果事务是纯读事务,因为不加锁,所以无害,不需要关闭,保持即可。
虽然这个思路被Percona的指出Alexey Kopytov可能存在“Even though SELECT queries do not place row locks by default (there are exceptions), they can still block undo log records from being purged.”的问题,但是我们确实有场景SELECT是绝对不能kill的,除非之后的INSERT/UPDATE/DELETE发生了,所以我根据我们的业务特点来修改。
跟Percona的Yasufumi Kinoshita和Alexey Kopytov提出过纯SELECT事务不应被kill,但通过一个参数控制的方案还没有被Alexey Kopytov接受,作为通用处理我提出了用两个变量分别控制纯读事务的空闲超时时间和有锁事务的空闲超时时间,还在等待Percona的回复,因为这个方案还在测试,就先不开放修改了,当然如果你很熟悉MYSQL源码,我提出这个思路你肯定知道怎么分成这两个参数控制了。

根据这两个需求我们来设计方法,首先想到这个功能肯定是放在InnoDB Master Thread最方便,Master Thread每秒调度一次,可以顺便检查空闲事务,然后关闭,因为在事务中操作trx->mysql_thd并不安全,所以一般来说最好在InnoDB层换成Thread ID操作,并且InnoDB中除了ha_innodb.cc,其他地方不能饮用THD,所以Master Thread中需要的线程数值,都需要在ha_innodb中计算好传递整型或布尔型返回值给master thread调用。

也买酒上海招聘Oracle DBA

职位职能:  数据库工程师/管理员
汇报对象:DBA Manager

公司名称:也买酒(网站地址: www.yesmywine.com)
工作地点:上海闸北区
招聘人数: 1
工作年限: 二年以上
学    历: 大专及以上

工作职责:
1、根据公司业务需求,提供数据支持;

PC服务器的硬件基准测试报告之TCP _STREAM

1.1       Network Adapter benchmark
测试类型分别为:TCP_STREAM,TCP_MAERTS,TCP_RR,TCP_CRR,每种类型分别测试2分钟。在8台虚拟机作基准测试的同时,在宿主机上启用sar 命令,每5秒截取一次数据,共取10分钟数据监控,详细情况见下面(注释:本章涉及的监控数据SAR Monitor.rar)。

1.1.1       TCP _STREAM

1.1.1.1.1   Data form– 1:4

测试TCP批量传输,测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量。

使用rake发布代码示例

【导读】

运维人员经常需要更新版本到线上,至少大部分公司都是这样的,

运维人员去发布相应的版本,常用的是使用svn进行版本控制更

新,还有像rsync,capistrano,sky所在的公司也是使用capistrano

进行版本发布的,在看puppet 资料,其中puppet cookbook2.7,

里有讲使用rake 发布,所以就尝试了,感觉这个根capistrano发布一个样,

但回退的时候,没有capistrano方便。那跟sky一起看看如何使用rake发布代码?