Jame’s Readings 06-29

  • Post author:
  • Post category:IT
  • Post comments:0评论

Monitoring:

http://t.cn/Rvqir6JAnomaly Detection Fault Tolerance Anticipation Patterns, 异常检测与容错 By John Allspaws,在我眼中,他对运维的思考是最深入的。

http://t.cn/RvqxX2V基于holt-winters指数移动平均算法做系统的异常检测.

http://t.cn/RvqxcFM使用指数移动平均来做时间序列数据的平滑化处理。

http://t.cn/Rvz9GD6Monitorama会议的Slides集合,monitorama是一个专门针对Monitor领域的技术会议,研讨Monitor的工具/方向与新思维。

At VividCortex, our unifying principle is that a system’s purpose is to perform useful work. The consequence of this is that job #1 is measuring and understanding work (not metrics), and making sure it’s done fast, consistently, and without errors.http://t.cn/8sdsDHC

http://t.cn/8s5sU5hQuery Time Is Not Server Load, 在MySQL中, 由于缺乏细粒度的Instrument(度量), 不能简单的通过Query Slow Log或简单的Top SQL来做性能优化, 查询时间不能简单的等同于资源消耗. 【一点修正】: Resource本身有多种,不同的SQL消耗的不同资源未必均衡, 需要更低粒度的度量才能解决

http://t.cn/8sZ38paDapper, a Large-Scale Distributed Systems Tracing Infrastructure , Google这套监控系统的论文读后感, Dapper的主要应用场景是定位大规模业务下的Latency异常问题,设计目标: 低开销, 对应用透明, 可伸缩性. 作为基础组建部署, 基于抽样异步批量收集数据.

http://t.cn/8kMa4aQ如何设计告警体系。 1. 删除所有的现有告警,2.每次出现故障时,都将能指示故障发生的指标记下并监控起来,3.更新你的监控系统,收集这些指标并针对其发告警,4. 重复上述步骤,完善可以预防宕机的告警指标

Performance & Scalability:

http://t.cn/RvML72lApplying Optimization Principle Patterns to Component Deployment and Configuration Tools From The Performance of Open Source Applications, 图片内容为各种性能优化的技巧/方法汇总.

Slide From Neil Gunther 应用Scalability的几个不同面相,最完美的Scalability来自完全的Share nothing,最差的Scalability来自业务本身的强Share,如订火车票,如账务资金处理,如热点库存处理。

http://t.cn/Rv7HTMzWhat-are-some-ways-to-determine-an-engineers-understanding-of-scalability 关于Scalability需要积累的知识,1.一些基本的编程技能,2.较强的分布式系统知识,3. 面对并处理现实世界的Scalability问题,如何满足不同系统的Scalability问题(交易系统/Feeds系统)

http://t.cn/8FpoxrL可扩展可交换性法则,If the outcome doesn’t change when you change the order of operations then the order is not important and that means you don’t need to lock anything and you can find a lock-free/wait-free/coordination-free 的实现. 也即有序是可扩展的死敌。

The bucket list of performance gains: – don’t do it – do it only once – do it less often – do it more efficiently

http://t.cn/8FyqADXbad-as-i-wanna-be-coordination-and-consistency-in-distributed-databases, ppt中的主要观点, coordination才是数据库Scalability的关键瓶颈, 设计Web Scale的系统的关键在于, 尽可能只保留必要的coordination, 单向唯一ID,外键,单向索引,事务原子性等都属于协调,要尽量避免.

http://t.cn/8kMCOHIBaron Schwartz使用Neil Gunther的Universal Scalability Law(USL)分析Paypay从Java 迁移到Node.js的博客文章中的数据, 分析两种情况下系统的Scalability的差异, 同时也吐槽Paypal的博客没有说清楚问题. 哈哈.

http://t.cn/8kMqDQJ数据库如何从一台服务器扩展到几百万个节点, ppt之前@何_登成 已经发过, 不再重复. 简要说下: 1. 传统RDBMS重点解决ACID与多个应用对一份数据的并发访问, 2. Paxos协议与Virtual Synchony的解释比较详细了, 3. CAP本身的介绍, 4. 顺带介绍Google的4篇主要论文+Dynamo.

http://t.cn/8kfduwf《阿姆达尔定律与Little’s Law的解析》Could you talk a little bit more about those different laws that people seem to be ignoring as they’re writing non-reactive systems? There’s some real fundamentals like Little’s law, Amdahl’s law, some basic mathematics. When you apply it to systems design, you see the limitations very, very quickly. Yet we seem to be more interested in fashion than doing some basic sums.

http://t.cn/8sn96d0(请自备梯子)基于Amazon AWS架构的高可用实践,介绍高可用的基础知识与原理,以及AWS提供的基础服务如何协助提高整个系统的高可用。

http://t.cn/Rvb5rP3“because architecture is more important than technology.”, Cameron Purdy对于“Why-does-Quora-use-MySQL-as-the-data-store-instead-of-NoSQLs”的答复。

http://t.cn/RvPZBMi如何确定Web应用的线程池大小, 文中介绍的方法是,基于Little’s Law计算最佳的线程数, 并针对IO密集型业务,CPU密集型业务,以及异步IO型业务(NIO/Nodejs/Ngnix)作了区别对待. 如果能将泊松分布带来的随机流给业务的影响一起考虑进去,简化出一个设置的方法就更加实用了.

http://t.cn/8shpJUnUnderstanding Throughput and Latency Using Little’s Law, Little’s Law探讨的是吞吐量与时延之间的关系.

MySQL:

http://t.cn/Rv4vSsyMySQL to Adopt ACID for System Tables , MySQL计划使用InnoDB来替代MyISAM存储数据字典定义的信息,从而确保DDL操作的ACID特性。 这也算是MySQL Server层与Engine层融合的一部分吧。

GTID in Facebook gtid的好处, 来自Facebook在Percona Live关于gtid的ppt, Failover更加容易找到位点; 数据库恢复更加容易, 也即更加容易确定恢复的位点; 级联复制更加简单. 总之, GTID实现了一个类似于Oracle中SCN的基于单库的逻辑时钟, 并且所有上述场景可以基于此逻辑时钟得到一个明确的恢复的位点, 从而简化维护工作

http://t.cn/8siKfxXFaster Semi-Sync Replication,Enforced Semi-Synchronous Replication Durability On MySQL 5.7.3,Loss-less Semi-Synchronous Replication on MySQL 5.7.2实现的介绍, 最后一篇文章介绍到@苏普 的工作, 但是由于版本的问题,实际代码并没有使用.

http://t.cn/8sVZPuXPercona Live会议热身,与FB工程师的交流, Our 5.6 deployment step was not all at once. At first rollout, we disabled most major 5.6 features, such as GTID and binlog checksum. We gradually enabled such features in production. 通过做减法使用新版本是个不错的主意.

http://t.cn/8sfTQDJinnodb-redo-log-archiving, 从代码层解析InnoDB的日志写入, 并进一步阐述InnoDB是如何进行恢复的, 在此基础上讲解, 如何基于InnoDB现有的机制设计InnoDB的Archive Log模式, 从而实现InnoDB的物理级恢复/复制. 【很不错的介绍】, @plinux 看看, 进一步说明下?

http://t.cn/8sZCswcConfiguring MySQL to use minimal memory, 那些影响单个MySQL实例内存消耗的参数, 以及可以调整的下限.

http://t.cn/8F14rvF关于MySQL Client的一些使用提示, “\R \u@\h [\d]“更改命令行提示,”\e” 利用os的编辑器(类似于sqlplus的ed),”\T /tmp/tee.log ” 记录命令行的所有输入/输出(类似于SQLplus的spool), “\! cat /tmp/tee.log”执行os的命令, “\P cat > /tmp/voila.log “管道重定向,”\c” 清楚当前命令

http://t.cn/8Ff9I1PPercona移植的thread pool版本测试, 有兴趣的同学可以参考@dbatools 同学的版本对比测试下.

http://t.cn/8FwRh2RMySQL Utility 新版本改进,增加了并行数据导出功能。代码确认是使用multiprocessing实现的, 导出是基于Database做拆分处理, 导入基于导出文件做拆分. 还需要进一步测试验证下. 另:1. mysql-utility是基于Oracle的python-connector连接数据库的(不是Mysqldb), 2. 这套工具的脚本组织的还比较好,比较适合我这种程序菜鸟学习。

http://t.cn/8kM67l7如何使用MySQL Performance Schema以及ps_helper,在MySQL 5.6中, Performance Schema在功能上有很大的改进, 可以以较细的粒度查看Statement的执行情况(这将显著的提升SQL优化的实施),可以基于DB/Schema做较好的性能统计,当然,Mutex/Wait Event相关的信息也更加清晰。

http://t.cn/8kM5ro7如何做MySQL上的封底计算(back-of-the-envelope-calculations), 即如何根据记录的平均长度, 计算表的大小, 索引的大小. 【感觉很有用的样子】

http://t.cn/8kMqlrN针对MySQL的Linux性能调优Tips, 1. 文件系统选择, IO调度器选择(ext4(noatime)/Deadline), 2. 内存调整(Swapness与Numa), 3. CPU调整, 最好在BIOS层关闭掉省电模式. 4. Comment中有人提示使用不同的内存分配器(Jemalloc), 不过需要自己验证下.

Linux & Misc:

UCBerkeley_Gray_FT_Avialiability_talk.pptSlide From Jim Gray Software Techniques: Learning from Hardware, Software Fault tolerance, By Jim Gram, From Fault tolerance talks

http://t.cn/8slOiu1Linux /dev/urandom and concurrency, 在Linux,大并发访问/dev/urandom会遭遇spinlock上的争用,而此Spinlock是为了保证多个并发的线程/进程获取到的随机数据确实是随机的,否则可能带来安全性问题。Jeff Bonwick在“magazines and vmem”的论文中介绍了Solaris的解决办法。

http://t.cn/8s88eGeAmazon Glacier背后的技术, 这篇文章从多个角度聚焦分析了, Amazon的Glacier为什么可以在2012年提供那么便宜的存储成本, 再通过最近Sony的新闻稿(http://t.cn/8snU8my)联系到之前James Hamildon介绍的冷数据存储的光学技术,从上述角度讲,国内的公司在这方面的差距起码有4-5年

http://t.cn/8siz9hqLinux内核的一些隐藏问题, 1. 无论vm.zone_reclaim_mode如何设置,总是倾向于优先回收Local Node的Page, 2. 在非O_DIRECT模式下, 写入磁盘的page必须先被加载到page cache中, 3. 当同一个文件被以O_DIRECT与非O_DIRECT混合的方式打开时, IO处理的性能会非常糟糕.

http://t.cn/8sq3NMtLinux集群高可用的一些基本概念, 集群消息层(HeartBeat与Corosync), 集群资源管理(PaceMaker), 仲裁(Quorum)与STONITH(Shoot The Other Node In The Head), 以及资源代理(代理管理底层的资源), 这是基本概念介绍, 基本概念.

http://t.cn/8sb4Qmx复制策略与复制的方式, 详细介绍了几种不同的复制方式, 1. 基于Log Shipping的物理复制方式(如Oracle), 2. 基于Operation Record的复制方式(如MongoDB,基于Row模式的binlog的MySQL), 3. 基于协调的多点写入(类似于HBase), 4. 简单的多点写入方式(类似于Cassandra)

http://t.cn/8sZ9lwq为什么buffered-writes偶尔会写不下去. 1. 需要先将block/page从磁盘读取到内存,然后才能更新,2.write操作可能会被flush操作阻塞, 进一步解释请看Stable Page Write(http://t.cn/8sZ9FDJ) 等待Ext3/4分配Journal Block, XFS在这方面毕现较好.

http://t.cn/8s7PSiN腾讯CKV海量分布式存储系统, 总体的设计很不错, 支持低成本(非纯Cache),可扩展性强(基于Sharding),高性能(网卡优化/访问优化),可用性超过99.95%(不算夸张,一年250分钟了),数据持久性超过8个9(这里有困难,多副本也很难做到),完善的运维体系(没得说).

http://t.cn/8FR5IkwSquare使用libgmp包中的modpow函数, 显著提升其使用Java计算2048位RSA密钥的效率, Square为知名无线支付公司.

http://t.cn/8Ff9mjl零宕机的数据迁移步骤, 1. 初始化, 2. 增量复制, 3. 一致性检测, 4. 影子写入(mirror 写入), 5. 影子写入+影子读(校验) 4. 切换.

http://t.cn/8FytUk1nosql介绍, 未来的数据持久化方案会向多种持久化方案的结合靠拢.

http://t.cn/8FwQmd1Brendan Gregg如何测试云主机, 1. 使用sysbench计算质数的方式测试CPU, 配合mpstat, sar, pidstat, and perf验证, 2. 使用iperf测试单线程以及系统的带宽/时延,通过nicstat, sar, and pidstat验证,3. 使用fio(by Jens Axboe)测试文件系统,配合sar, iostat, pidstat,perf验证.

http://t.cn/8kkB189Linux memory介绍,Linux系统的各个内存组件的含义介绍,单个进程(Oracle)占用的内存分析介绍, 使用Cgroup之后的内存使用分析。

As I’ve said in my books and elsewhere: “All virtualization is about illusions and although it is perfectly reasonable to perpetrate such illusions on unwitting users, it is entirely unreasonable to propagate those same illusions to the performance analyst.”http://t.cn/8kD1pob

So it turns out that “consistency (predicate)” and “consistency (history)” are two distinct ideas that happen to share a word. It is always an error to substitute the distributed systems definition of “consistency” for the C in ACID.http://t.cn/8krSQu5

http://t.cn/8kNGIQcThe fact that Oracle’s policies and management practices are not community friendly is a different matter. But I’d bet that digging deeper into these would reveal that other companies that are perceived as open and community friendly are not very different.

http://t.cn/8kMPA6g技术晋升的误区(By 杨卫华)通常TC对专业角度的考察会占到60%以上的权重。直接说出你打了哪几次胜仗,每场由于环境的变化你灵活使用了哪些兵法来克服困难,在某些特别的条件下,你灵活使用了一些没用过的兵法取得了良好效果。如果你发现过去缺少独立打仗的机会,请看下一条。

社科文章摘要:

http://t.cn/RvfrMa7从哈/维/尔出发。生活在真实中”、“无权者的权力”、“反政治的政治”……呈现了他的观察、感受和思考,不仅字字句句闪动着批判的锋芒,而且蕴含着通往未来健康社会的新因素,这些语言的背后是一种强有力的精神力量,这是站在他对面的庞然大物难以想象的力量.

http://t.cn/8snRdid“我接受了自己的局限。”薛忆沩说。在异乡写作,他借用的是乔伊斯的三种武器—沉默、流亡和精巧。“沉默是对浮躁的颠覆,流亡是对同化的逃避,而精巧是对粗俗的反抗。在异乡,写作的自由和完整因此反而容易保存。”

http://t.cn/8sDZrjv高华纪念文章, “红||太||阳||是||怎||样||升||起||的” 财新传媒好样的.

章诒和《顺长江,水流残月》:“我为了写父辈(章伯钧、罗隆基……)的故事,曾到民盟中央寻找材料。人家告诉我,由于定期及时上缴中央统战部,民盟早就没有自己的档案了。惊骇万分:一个政党的历史居然由另一个政党管着。说穿了,就是不要民主党派有自己的历史和记忆!”

尤里·德鲁日尼科夫《针尖上的天使》的主人公伊戈尔·伊万诺维奇·马卡尔采夫是《劳动真理报》的主编。此报并非虚构,苏联最著名的《真理报》曾易名《劳动真理报》。它只有一条原则:“无论世界上发生了什么,订报人应当读到的是:我们的国家一切正常。”

现今有许多人所以不能独立,只是因为不能用思考与事实去打破他们的成见;又有一种人所以不能独立,只是因为他们不能抵御时髦的引诱。……我们不说时髦话,不唱时髦的调子,只要人撇开成见,看看事实,因为我们深信只有事实能给我们真理,只有真理能使我们独立。——胡适《独立评论的一周年》

http://t.cn/8FFt1ke《为奴十二载》:自由是反抗者的战利品. By 羽戈”有了反抗,未必有自由,没有反抗,则绝对没有自由。”, 也许,等到一个国家和民族有资格写作《自由的故事》之时,他们才能理解这一格言的意义:“自由都是反抗者的战利品,绝不是掌权者的恩赐物。”(施明德)

http://t.cn/8FH22gZ创业并快乐着的六个习惯, 1. 早睡早起, 2. 每日健身, 3. 全身心的放松, 4. 帮助他人, 5. 学习新技术, 接受新挑战, 6. 寻找第二乐趣, 重新定义”赢”或”成功”.

人类的“物理-生理-心理”结构意味着,任何社会得以持续演变或生存,前提是满足足够多(可能必须很多)社会成员的安全感,与此同时,满足足够多(不必很多)社会成员的好奇心。任何社会制度乃至任何公共政策,都必须或多或少在能够满足安全感与能够满足好奇心的制度之间权衡。 By 汪丁丁.

“不能用改革开放后的历史时期否定改革开放前的历史时期,也不能用改革开放前的历史时期否定改革开放后的历史时期。”光明日报刊文解读时更透露习曾说:“如果当时全盘否定了毛泽东同志,那我们党还能站得住吗?我们国家的社会主义制度还能站得住吗?那就站不住了,站不住就会天下大乱。”

@peakscale: “Engineers like to solve problems. If there are no problems handily available, they will create their own problems” – Scott Adams 是这样嘛?

It does not matter how intelligent you are, if you guess and that guess cannot be backed up by experimental evidence – then it is still a guess.” – Richard Feynman

http://t.cn/8sIoBW1on-working-hard, Success doesn’t depend on how much you work, it depends on where you focus your time in the best way possible. Don’t work too hard.

http://t.cn/auGru1Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure. 组织的通讯架构决定了这个组织设计的产品的架构.

Eric Schmidt said, “Every once in a while a perfect storm occurs. Your competitors make some mistakes. You end up with the right product at the right time. There are really no other good choices of products … That’s what happened with Android.”http://t.cn/8kD7Wbb

“Redundancy is ambiguous because it seems like a waste if nothing unusual happens. Except that something unusual happens—usually.” @nntaleb 尼古拉斯.塔勒布

No related posts.

发表回复