expect

WIP: Mac 上使用 expect 自动登录 ssh

Linux 的世界有着许多的未知宝藏,今天要说的就是其中一个。 看下面的脚本: 遇到一个小问题,之前直接使用 terminal 登录 ssh,使用 tmux 的时候,是可以随着窗口的缩放而适应大小的。改用 expect 自动登录 ssh之后,tmux 的适应窗口大小的能力消失了。这里找到一个问答,解决这个问题。简而言之,expect 自己来捕获 sigwinch 信号,并传递给 children。 修改之后的脚本: (待续)

SmartServing

投放系统多机房多活可行性的几点思考

背景 ... 单一媒体 以腾讯视频为例,假设媒体分机房就是为了将用户群体切割开,按地域切分,引流到就近的机房。那么,可以大胆假设: 用户会因为媒体的分地域策略而固定在一个机房, 进一步推断, 用户不会跨机房请求广告。所以,用户的控频信息不需要跨机房同步。 需要跨机房同步的是,项目级别、广告位级别的推送量、曝光量等对一致性要求高的全局状态。 跨媒体 8-10 早补充 前面讲到的跨机房不同步用户控频数据,严格来说,不准确。原因是,如果一波项目是跨媒体控频的,同一个人,由于不同的媒体机房分布不尽相同,有可能会被迫让同一个人出现在不同的地域,出现在我们的不同机房。 (未完待续)

CDN

免费的午餐:七牛CDN vs 百度云加速

上一篇我们对比了自建机房的网络状况,总体网络状态良好,甚至北京的某BGP机房表现有点出乎意料。那么,在这一篇,作者将继续对比两款免费的 CDN 和加速器产品。 此次测试,采用 17ce.com 提供的在线分布探测服务,共计 109个探测节点、覆盖了 5个 ISP,以及覆盖到了全国 34 个省份。 七牛CDN 顺手补充一组商业产品的对比,看看所谓的商业级的产品有什么厉害的地方。使用同一个小图片测试如下, 图1 七牛云存储 全国 HTTP Get 访问时间分布 从上图看,七牛深绿的地区还是不少的,

serving 和 track 采集服务网络质量对比

自从 Serving 的采集独立以来,一路踩坑,一路成长。 今天不谈技术栈,不谈数据传输,单说说网络问题。先通过工具来探查一下各自的表现。 HTTP 探测 通过分布全国的探查节点,看一下 TrackMaster 的情况: 图1 TrackMaster 全国 HTTP Get 访问时间分布 再来看一看 Serving 的采集入口: 图2 SmartServing 采集系统全国 HTTP Get 访问时间分布 对比两张图,要哭了,惊喜不惊喜?

goroutine

学习nsq: 优雅地退出 gorotine

忘了搜什么东西,看到了某社区的这篇优雅中断定时任务的文章,试着提出自己的解决方法。 最近大半年,断断续续的学习 nsq 的源码,深为其简单清晰的风格所折服。下面就用从中学到的退出信号来解决。 问题 下面的定时器用法示例,无法关闭定时器 t := time.NewTicker(3 * time.Second) timeout := time.After(10 * time.Second) go func() { for { <-t.C ... } }() <-timeout ... 解决

记一次 systemctl 启动 openresty 失败原因排查

近日, 为了改 API 日益恶化的调用鸭梨,尝试做应用层的负载均衡,来调度读写流量和内外部流量。需用用到 OpenResty。由于这次的平台是 CentOS7,已经采用了 systemctl 来作为服务的管理工具,并且这次是自己下载源码构建安装,碰到一些问题,记录下来。 首先呢,安装 OpenResty 的过程是波澜不惊的,按照官网的新手教程,一路顺利构建完成。 下载最新版本, $ cd ~/ $ wget https://openresty.org/download/openresty-1.11.2.1.

有关 RAID 独立磁盘冗余阵列

RAID卡是企业及用户进行信息的重要设备之一,既然要进行数据就自然免不了数据,这里除了硬盘的、可靠性之外,RAID卡本身的性能和特点往往会被一些用户忽视,而厂商为节约成本也会搭配一些比较入门级甚至一些小品牌的RAID卡产品,在使用过程中出现问题时用户也只是把关注的重点放在硬盘上。今天我们ZOl服务器频道将对主流一些品牌的SAS接口的RAID卡进行详细介绍。 什么是RAID? RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文即为独立磁盘冗余阵列。简单的说,RAID是一种把多块独立的物理硬盘按不同方式组合起来形成一个逻辑硬盘,从而提供比单个硬盘有着更高的性能和提供数据冗余的技术。我们常见到的RAID磁盘阵列方式有RAID0、1、10、5等,有关这几种模式的技术特点之前已经有很多关于这样的技术文章了,在这里我们不再重复叙述。 RAID 种类 通过上篇文章《服务器为什么要做磁盘阵列?》的详细介绍,相信大家对raid冗余磁盘阵列都有了基础的认识。而当大家租用服务器时,挑选配置却又发现raid还有很多种类,其中常见的有RAID0、

TUKU 是什么

写累了,来写点闲的。 对于经历过传统的教育的人来说,非常希望未知的东西能有一个明确定义,否则可能难于理解。非要给 TUKU 找一个定义,我觉得: TUKU 是一个供互联网用户上传图片至云端的工具,让你简单地把本地的图片变成一个可以分享的 URL。 其实 tuku 是原本给 yotuku 起的名字,可惜目前的域名市场早已混乱不堪,域名的买卖早已是一个类似赌石一般的巨大市场,不提也罢。为了迎合大陆畸形的制度,只能弄一个这般不伦不类的域名先用着。 yotuku 上线快一年了,运营一直不温不火,有人说 yotuku 的用户群体一直限定在公司内部的同事等熟人圈。这话我不同意,事实上,从运营数据来看,yotuku

Linux 命令 tee

Linux 命令 tee 本人很懒,从来没打算一次性把所有 Linux 命令都学完,再说了,都学完了,也记不住啊。还是要循序渐进。比如,这个 tee, 常常看见,脸熟的很,就是不知道神马意思。这次就来看看它是个什么鬼。 这个命令很有意思,而且很实用。通常我们执行一个命令行工具,尤其是后台执行的时候,为了不让控制台被后台程序的输出给弄得乱七八糟,都会重定向一下输出日志,例如: /opt/logstash/bin/logstash -f /tmp/foo.conf

influxdb

记 InfluxDB 静默崩溃的故障排查(上)

提醒,如果您也碰到了这个问题,并且版本不是 0.9.5,就不用在看了 最近使用 InfluxDB 作为存储搭建了一个监控系统,辛辛苦苦写了三天三夜的采集,满怀希望的盼着一次成功,遗憾的是事与愿违。 在早上 10:02 之前,一切看起来都是美好的。 这时候,有同学来查监控,一高兴,就把过去24小时的数据都展示了一下,很是好看。 高兴了还没到一分钟,然后就这样了。 整个人都不好了,马上意识到是 TSDB 数据源出了问题。curl 检查一下,不通了。马上连接监控服务器,

log-rotate in docker

Log rotate 是一个常见的需求,在 Linux 平台上,一直都是有着系统级的解决方案: "logrotate",专门来解决这个问题的。配合使用 cron ,十分的灵活和强大。但是,如果因为种种原因不能使用这种系统级的利器时,有时候就显得比较麻烦了。 N久以前,我们的后台服务是没有日志的切分的,直到有一天,需要查找日志,发现日志文件已经100G了,找什么都是大海捞针。当即决定把日志切分功能加上。 我们使用了 morgan 来做日志中间件,改动之前是这样的, # ... logPath = config.accessLog or "

财政直接支付和授权支付

晚上在调报表的时候,看到数个表互相关联,头都大了,真不知道之前是怎么弄出来的。趁着头疼的功夫,顺手整理几个概念下来。 跨学科的知识鸿沟,通常情况下,真的是难以逾越的,若非有着超人的毅力和天赋,恐怕也只能是痴人说梦罢了。 由于自己没有系统地学习过任何与财政或者财务相关的学科,涉及财政国库等项目中的很多概念和名词理解起来比较困难甚至有些吃力。无奈之下,只好到处搜集、整理,记下来,强化一下。俗话说临阵磨枪,不快也光。 回想当初的梦想,唉,一肚子苦水没地方倒。 开始说点正经的, 关于财政直接支付和授权支付 财政系统中有很多的新东西要学,千头万绪,只有从这两个接触十分高频的概念着手了。这两者都是国库集中支付的具体形式,各自有什么样的具体不同,且看我一一度娘之。 财政直接支付 财政直接支付是国库集中支付的一种方式,