Walk in Starlight
  • 首页
  • 分类
    • 默认分类
    • 混口饭吃
    • 都学杂了
    • 简单生活
  • 归档
  • 关于
  • 登录
    • 登录

【DNS】权威NS的记录如何做CDN智能解析

 August 13, 2015      混口饭吃      访问: 8,538 次      评论     sealinger

通常来讲,在域名解析的过程中,有关我们自己的二级域名的权威NS信息,是从顶级域获取的,而相关授权 Name Server 也是提前在域名注册商的管理页面中配置的,似乎无法对权威NS这一层做CDN智能访问(除了BGP anycast routing,后文也有介绍)。

本文就是为了解决这个问题而进行的一个研究,较详细的介绍了一些背景知识和相关思路,提供一个没有BGP条件的次优的解决方案。

一、引言:典型的域名解析查询过程

域名解析是一个相对复杂的过程,需要多个环节,遍历多个DNS服务器,才能获取域名的IP地址。解析过程如下图: 


(图片引用自阿里公共DNS网站的知识中心页面)

- 阅读剩余部分 -

Enhanced Intel SpeedStep® Technology on Linux

 March 19, 2015      混口饭吃      访问: 4,134 次      评论     sealinger

1、Enhanced Intel SpeedStep® Technology

Enhanced Intel SpeedStep® Technology(EIST,增强型 Intel SpeedStep® 动态节能技术),是Intel公司专门为移动平台和服务器平台处理器开发的一种动态节能技术,在实现高性能的同时又能满足移动式系统的节能需求。到后来,新推出的桌面处理器也内置了该项技术,Intel CPU产品中频率在2.8G以上的Pentium 4 6xx系列、Pentium D以及CORE全系列处理器都已支持EIST技术。它能够根据不同的系统工作量自动调节处理器的电压和频率,以减少耗电量和发热量。

传统的英特尔 SpeedStep 动态节能技术,在处理器负载发生变化时,需要“捆绑式地”调高或调低CPU的电压与频率(即要想调节频率,必先调节电压)。增强型的 Intel SpeedStep 动态节能技术在该传统架构上构建,采用了如下更新的设计策略,包括:

  • 电压和频率变化的分离。通过向上和向下以小幅增量独立调节电压,处理器能够减少系统不可用的时间(在频率变化时CPU所处理的指令是需要暂停的)。因此,系统就可以更频繁在不同的电压和频率状态之间转换,提供更好的功率/性能平衡。

  • 时钟分区和恢复(Clock partitioning and recovery)。总线时钟在状态转换期间持续运转(甚至当核心时钟和锁相环路(phase-locked loop)均停止时),从而允许逻辑电路保持活动状态。在增强型 Intel SpeedStep 动态节能技术下内核时钟还能比传统架构下更快地重新启动。

增强型 Intel SpeedStep 动态节能技术降低了与更改电压/频率对 (称为p-state) 相关的等待时间,因此状态转换可以更频繁的进行,从而实现更细粒度的依需求切换和按需的功率/性能平衡优化。

BIOS中对应的设置为:

2、Kernel Cpufreq Infrastructure

CPUfreq,也即CPU speed scaling,是 Linux 内核用来支持在移动处理器上显式调节CPU主频的子系统。Linux内核做了大量工作用来加强其模块化架构,下图显示下2.6.8内核下的cpufreq框架:

图:Cpufreq 基础框架概览

- 阅读剩余部分 -

[转]tcp数据重传时间细节探秘及数据中心优化

 March 19, 2015      混口饭吃      访问: 3,550 次      评论     sealinger

在数据中心网络内,机器之间数据传输的往返时间(rtt)一般在10ms以内,为此调内部服务的超时时间一般会设置成50ms、200ms、500ms等,如果在传输过程中出现丢包,这样的服务超时时间,tcp层有机会发现并重传一次数据么?如果设置成200ms以内,答案是没有机会,原因是linux系统下第一次重传时间等于传输的往返时间上至少加上200ms的预测偏差值,即如果rtt值是7ms,第一次重传超时时间至少是207ms,这样如果对某个接口的超时时间设置成200ms以内, 即便是rtt时间很小,仍然无法容忍一次丢包,因为在tcp发现丢包之前,该接口已经超时了。

本文针对linux系统tcp数据包第一次重传时间的计算进行探究,结果会让人大吃一惊。提出的优化方法,理论上能够降低内部服务调用时延和出错量。

tcp发送数据包后,会设置一个定时器,到期后如果还没有收到对方的回复(ack),就会重传数据包。从发出数据包到第一次重传之间的间隔时间称为retransmission timeout(RTO),rto由数据包的往返时间(rtt)加上rtt的预测偏差(波动值)计算出来。

即 rto = srtt + rttvar,其中srtt是rtt的平滑值,而rttvar是波动值,代表可能的预测偏差。

接下来我们做一个试验。

先ping一下www.weibo.com,看一下数据包的往返时间,如下:

[xiaohong@localhost ~]$ ping www.weibo.com
PING www.weibo.com (123.125.104.197) 56(84) bytes of data.
64 bytes from 123.125.104.197: icmp_seq=1 ttl=55 time=3.65 ms
64 bytes from 123.125.104.197: icmp_seq=2 ttl=55 time=3.38 ms
64 bytes from 123.125.104.197: icmp_seq=3 ttl=55 time=4.34 ms
64 bytes from 123.125.104.197: icmp_seq=4 ttl=55 time=7.82 ms

再看一下tcp对到www.weibo.com的rtt相关数据,下面的命令是针对centos7(如果是以下的版本,运行的命令是ip route list tab cache)如下:

[xiaohong@localhost ~]$ sudo ip tcp_metrics
123.125.104.197 age 22.255sec rtt 7375us rttvar 7250us cwnd 10

由上面看出,平滑后的rtt值约为7ms,rttvar约为7ms,那按理说rto值应该是14ms左右,也就是等14ms后,如果没有收到对方的响应,就会重传数据。实际的情况会是这样么?

在一个命令窗口里,运行下面的命令:

[xiaohong@localhost ~]$ nc www.weibo.com 80
GET / HTTP/1.1
Host: www.weibo.com
Connection:

同时再开一个命令行窗口里,运行下面的命令:

[xiaohong@localhost iproute2-3.19.0]$ ss -eipn '( dport = :www )'
tcp   ESTAB      0      0              10.209.80.111:56486       123.125.104.197:80     users:(("nc",1713,3)) uid:1000 ino:14243 sk:ffff88002c992d00 <->
ts sack cubic wscale:0,7 rto:207 rtt:7.375/7.25 mss:1448 cwnd:10 send 15.7Mbps rcv_space:14600

从上面的结果可以看出,实际的rto值是207ms,相当于rtt值加上200ms,为什么呢?

- 阅读剩余部分 -

UEditor for Typecho插件安装笔记

 February 16, 2015      默认分类      访问: 4,959 次      评论     sealinger

百度官方推荐的UEditor for Typecho第三方插件,支持Typecho 1.0/0.9/0.8。

1、下载和安装

注:Typecho 1.0/0.9用户请在[控制台/个人设置]中关闭Markdown解析再启用插件!

1)直接下载zip压缩包: 点这里 。

2)解压后,将 UEditor 文件夹放入 /typecho/usr/plugins/ 下,然后到Typecho后台启用插件即可。

2、修改主题文件

为了在页面展示中显示语法高亮,还需要修改一下主题文件,在 footer.php 中加入如下代码:

<!--加入高亮的js和css文件,如果你的编辑器和展示也是一个页面那么高亮的js可以不加载-->
<script type="text/javascript" src="<?php $this->options->siteUrl(); ?>usr/plugins/UEditor/ueditor/third-party/SyntaxHighlighter/shCore.js"></script>

<link rel="stylesheet" type="text/css" href="<?php $this->options->siteUrl(); ?>usr/plugins/UEditor/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css"/>

<script type="text/javascript">
     //为了在编辑器之外能展示高亮代码
      SyntaxHighlighter.highlight();
   // UE.getEditor('myEditor');
</script>

3、修复不会自动换行的问题

如果你的内容展示区域不够宽的话,那么代码如果超过显示区域的宽度后,仍然会继续延伸,造成页面不美观。

可以修改 shCoreDefault.css 来加入强制换行的属性:

vi /typecho/usr/plugins/UEditor/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css

找到如下这一段代码,增加一句 word-break:break-all;

.syntaxhighlighter
{
   width:100%!important;
   margin:.3em 0 .3em 0!important;
   position:relative!important;
   overflow:auto!important;
   background-color:#f5f5f5!important;
   border:1px solid #ccc!important;
   border-radius:4px!important;
   border-collapse:separate!important;
   word-break:break-all    //增加这一句
}

备注:当修复了自动换行的问题后,另一个问题也随之而来。

因为一行代码显示成两行了,而左侧的行号并未因此而做出改变,这样就会造成高度不统一而错位了。

实际上UEditor 集成的 SyntaxHighlighter 版本较低,是1.5版本的,其官网都已经是3.0.83版本了。 如果插件作者能帮忙更新下就好了!


Cacti修改采集精度为1分钟

 February 12, 2015      混口饭吃      访问: 9,890 次      评论     sealinger

好,既然你来到这里,我想你的原因和目的都很清楚,我也就不费话了(不摘抄网上转来转去的重复内容了)。

基础知识:建议先了解一下 rrdtool 及 rrd 数据库的工作原理,参考阅读《rrdtool学习笔记》(好吧,如果你不想阅读,本文也可以给你一个清晰的指导来完成1分钟精度的修改!)。

要为Cacti配置1分钟的采集精度,在采集数据开始画图之前需要先做如下4个事情。

  1. 创建1分钟的RRA;

  2. 在Cacti Data Source 模板中修改“Step”和“Heartbeat”的值;

  3. 在系统 cron 中修改 poller 的轮询时间间隔;

  4. 在 Cacti 配置中修改 poller 的轮询时间间隔。

之所以首先要创建1分钟的RRA,是因为一旦使用了错误的RRA采集数据,那么就比较难修正了,意味着旧的数据要被丢弃重新开始收集(虽然在某些情况下可以通过rrdtool的 dump 和 restore 功能来在原有数据的基础上进行修改,但那需要比较好的掌握 rrdtool 知识)。

以我的VPS为例,只有网络流量图需要精度较高,所以我选择创建新的1分钟 RRA,保留5分钟的默认 RRA 给其他图用(比如 Filesystem space、Memory free 监控等)。

1、首先先创建需要的1分钟RRA:

 “Console” -> “Management” -> “Data Sources” -> RRAs ,Cacti 默认的 RRAs 如下:

这个RRA的定义可以决定我们不同精度的数据最大保存周期,保存时间 = Step * Steps * Rows 。比如默认的Cacti 5分钟精度的 Daily (5 Miniute Average) 这个RRA精度的数据保存时间为:(5 * 1 * 600) / 60m = 50h ≈ 2d,注意:

  • “Step”是步进时间,是在 Data Source 中定义的,Cacti 的话就是我们下面第二步提到的在 Data template 里定义的 Step 值(单位秒);

  • “Steps”是步进个数,即是指上图 RRA 中定义的 Steps 值;

  • 注:这个保存时间不是上图中的 Timespan 的值,Timespan 指的是我们点击某一个图之后出现的 详细几个分时间段的图中 显示的时间段的长度。

好了,正式开始我们的RRA修改和创建方法说明。

- 阅读剩余部分 -

Debian下减少snmpd的日志输出详细度

 February 10, 2015      混口饭吃      访问: 2,643 次      评论     sealinger

运行环境:Debian 7.8

Cacti监控的Poller查询snmp,每查询一次就输出几行 Connection 信息到/var/log/syslog,如:

Feb 10 11:18:01 install snmpd[2589]: Connection from UDP: [127.0.0.1]:42043->[127.0.0.1]
Feb 10 11:18:01 install snmpd[2589]: Connection from UDP: [127.0.0.1]:60018->[127.0.0.1]
Feb 10 11:18:01 install snmpd[2589]: Connection from UDP: [127.0.0.1]:38451->[127.0.0.1]
Feb 10 11:18:01 install snmpd[2589]: Connection from UDP: [127.0.0.1]:54567->[127.0.0.1]
Feb 10 11:18:01 install snmpd[2589]: Connection from UDP: [127.0.0.1]:56727->[127.0.0.1]

欲要修改snmp日志输出的详细度,可将启动参数 -Lsd 修改为 -LSwd。具体如下:

# vi /etc/default/snmpd 

#SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'
SNMPDOPTS='-LSwd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'

重启服务:

# service snmpd restart

---------------------------

分析思路:

1)查看进程(ps aux),能看到启动参数:

/usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid

2)查看启动脚本,看如何修改:

以上可知,需要修改 /etc/default/snmpd 里的参数。

3)查看帮助(man snmpcmd),有详细解释(只是缺少例子):

LOGGING OPTIONS
       The mechanism and destination to use for logging of warning and error messages can be controlled by passing various parameters to the -L flag.
       -Le    Log messages to the standard error stream.
       -Lf FILE
              Log messages to the specified file.
       -Lo    Log messages to the standard output stream.
       -Ls FACILITY
              Log messages via syslog, using the specified facility ('d' for LOG_DAEMON, 'u' for LOG_USER, or '0'-'7' for LOG_LOCAL0 through LOG_LOCAL7).
       There are also "upper case" versions of each of these options, which allow the corresponding logging mechanism to be restricted to certain priorities of message.  Using
       standard error logging as an example:
       -LE pri
              will log messages of priority 'pri' and above to standard error.
       -LE p1-p2
              will log messages with priority between 'p1' and 'p2' (inclusive) to standard error.
       For -LF and -LS the priority specification comes before the file or facility token.  The priorities recognised are:
              0 or !  for LOG_EMERG,
              1 or a for LOG_ALERT,
              2 or c for LOG_CRIT,
              3 or e for LOG_ERR,
              4 or w for LOG_WARNING,
              5 or n for LOG_NOTICE,
              6 or i for LOG_INFO, and
              7 or d for LOG_DEBUG.
       Normal output is (or will be!) logged at a priority level of LOG_NOTICE


    1. «
    2. 1
    3. 2
    4. 3
    5. 4
    6. 5
    7. 6
    8. 7
    9. ...
    10. 23
    11. »

优质VPS主机推荐

最近回复

  • sealinger: 我补充在后面了,你参考下。
  • nilin: 最后一句话,怎么操作啊,使得容器和宿主机互通
  • sealinger: 可能吧。。验证码还没搞定,哈哈

最新文章

  • Charles 之 SSL Proxying
  • 系统重启后Nginx的Max open files limit被重置为默认的问题
  • tmpwatch与find命令清理旧文件的注意
  • 关于Nginx在URL末尾不加斜杠时的自动重定向
  • Nginx在upstream中配置域名的动态解析问题
  • CentOS 6.7下Caffe的编译安装过程
  • vsftpd-虚拟用户配置
  • 关于sar命令的一点技巧
  • AWS EC2:扩展EBS卷的存储空间
  • PDF文件表单里输入文字后不显示的问题解决
  • Docker实践技巧(0)
  • RHEL7/CentOS7系统配置和管理变化汇总
  • 搭建Docker私有仓库Registry-v2
  • Pipework配置Docker容器macvlan网络
  • CentOS 7安装Docker简易指南
  • Win7开机后svchost.exe占用内存和CPU过高
  • 关于 Out of Socket memory 的解释
  • 拍了一个新域名: gesha.net
  • 【DNS】权威NS的记录如何做CDN智能解析
  • Enhanced Intel SpeedStep® Technology on Linux
  • [转]tcp数据重传时间细节探秘及数据中心优化
  • UEditor for Typecho插件安装笔记
  • Cacti修改采集精度为1分钟
  • Debian下减少snmpd的日志输出详细度
  • 将VPS从Vultr洛杉矶节点迁到日本东京节点
  • [转]Traceroute网络排障实用指南(2)
  • [转]Traceroute网络排障实用指南(1)
  • 《TCP/IP详解-卷1》 要点笔记(3)
  • 《TCP/IP详解-卷1》 要点笔记(2)
  • 《TCP/IP详解-卷1》 要点笔记(1)
  • 利用iTunes将wav转成mp3格式
  • Godaddy续费域名无法支付的问题解决
  • 库克:身为同性恋我感到自豪
  • curl命令自动跳转follow HTTP redirects
  • [转]一致性hash算法( consistent hashing )
  • 不翻墙如何访问Google | gfsoso.com | wen.lu
  • typecho永久链接设置(nginx+php)
  • 如何解决nginx+php报错“No input file specified”
  • Linux Kernel: buffers和cached的区别
  • yum安装vim冲突一例解决
  • [Typecho插件]升级Google Analytics到Universal Analytics
  • 不解压浏览tar.gz文件列表
  • squid的forwarded_for 配置
  • [转]如此心机的老婆,不教出一个优秀的女儿才怪了~~
  • 三星国行Galaxy S4 GT-I9500官方Android 4.3固件ZCUFML1 ROOT教程
  • 汽车助手类(记录加油和保养情况)APP(for iOS)推荐
  • Debian初学者笔记(5)—四个小备忘
  • Android手机抓包工具shark for root抓包参数
  • Wireshark 1.8/1.10应用程序无法正常启动(0xc000007b)
  • 电脑连接手机adb shell老提示error:device offline

标签云

debian nginx tcp/ip docker typecho network linux fuckgfw dns hardware cacti amazon aws vsftpd caffe Charles

友情链接

  • 釜底网
  • Typecho主题
  • Typecho插件

其它

  • 文章 RSS
  • 评论 RSS
  • SiteUptime Report

优质VPS主机推荐


  • © 2010-2021 Walk in Starlight | Designed by Fomde | Powered by Typecho | Hosted by Vultr