使用VPN翻墙访问互联网

2014-06-9 22:51  |  分类:简单生活

在可见的未来预计GFW还会发威很多次,比如每年都有六月四日,还可能有艾未未这样较真的人,社会发展的车轮会不断的羞辱GFW,恼羞成怒之后就会发威。即使除了这些,GFW还会误伤很多网站和基础服务,比如Google Docs、Gmail等等。所以一个稳定的VPN服务就很有必要了。

翻墙有多方法,如ssh tunnel/goagent/VPN等,各有优缺点,本文*概述*使用VPN自由的访问互联网服务。[......]

Read more

朋友,不要再打听彼此薪水

2014-04-28 15:50  |  分类:简单生活

不想糊里糊涂,所以整理了一下思路。因为财年关系,最近很多朋友私下在讨论薪水、年终奖、加薪、option。窃以为这是一件很让人沮丧、且没必要的事情。

1. 了解薪水待遇的大趋势是有必要的

对于很多人,工资通常是家庭收入的主要甚至是唯一来源,高低直接影响着家庭的生活品质。所以对各个公司的薪水体系有个大致的了解,知道怎样的努力会获得怎样的回报,是很有必要的。

到网上稍加搜索,几家大公司(例如BAT)各个主要层级的薪水待遇都能查到大概的区间,和商品价格一样,薪水高低通常是“个人价值”和“供求关系”的综合反映,通过了解薪水的概要信息,可以让你知道,什么类型的人才、技术是公司比较需要的。[......]

Read more

使用mysqladmin ext了解MySQL运行状态

2014-03-13 10:56  |  分类:MySQL

mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态、进程信息、进程杀死等。本文介绍一下如何使用mysqladmin extended-status(因为没有"歧义",所以可以使用ext代替)了解MySQL的运行状态。

1. 使用-r/-i参数

使用mysqladmin extended-status命令可以获得所有MySQL性能指标,即show global status的输出,不过,因为多数这些指标都是累计值,如果想了解当前的状态,则需要进行一次差值计算,这就是mysqladmin extended-status的一个额外功能,非常实用。默认的,使用extended-status,看到也是累计值,但是,加上参数-r(--relative),就可以看到各个指标的差值,配合参数-i(--sleep)就可以指定刷新的频率,那么就有如下命令:[......]

Read more

使用MySQL自身复制来恢复binlog

2013-11-25 22:47  |  分类:MySQL

如果需要恢复的二进制日志较多,较复杂,强烈建议使用MySQL自身复制来恢复binlog,而不要使用mysqlbinlog。

在MySQL手册中一直是推荐使用mysqlbinlog工具来实现指定时间点的数据恢复,事实上,这是一个经常"让人郁闷"的办法。更好的办法是,使用MySQL内部复制线程中的SQL Thread来做恢复。

这个idea来自Lazydba同学;在Google稍作搜索,在Xaprb上Baron Schwartz也很早提到了使用类似的方法来恢复binlog,在那篇讨论中,还可以看到Jeremy Cole也提到:使用MySQL手册中推荐的方法是困难重重的,而且mysqlbinlog这个办法从逻辑上来说也是一个错误--因为这样MySQL不得不在两个不同的地方实现一套相同的逻辑,最终难免会出错。使用mysqlbinlog来恢复,你可能会需要以下“让人郁闷”的问题:

(*) Max_allowed_packet问题 (*) 恼人的Blob/Binary/text字段问题 (*) 特殊字符的转义问题 (*) 没有"断点恢复":执行出错后,没有足够的报错,也很难从失败的地方继续恢复

1. 如何操作

本文不打算写一个step by step的文档,只介绍主要的思路和粗略的操作步骤。

1.1 将binlog作为relay log来执行

优点:实施简单;缺点:需要关闭一次数据库(不确定不关闭数据库行不行);

思路:直接将要恢复的binlog拷贝到relay log目录,并修改slave-info相关的文件,让MySQL把binlog当做relay log来执行

简单的操作步骤:[......]

Read more

使用Autoconf检测MySQL相关的软件包

2013-11-18 22:34  |  分类:Linux,MySQL

在你的程序(或者工程)中,如果编译阶段需要检测当前环境中是否存在MySQL客户端相关的库文件时,你可以使用Autoconf来帮你完成这个工作,轻盈、优雅、无痛。阅读本文需要了解简单GNU Autoconf使用。

1. 本文的目标

目的:编译时,根据configure参数(如果有--with-mysql),选择性编译对应的MySQL相关的功能。

实现:使用已经写好的m4脚本:ax_lib_mysql.m4

2. 如何利用Autoconf实现

大部分你想到的事情都已经有人做过尝试了。这件事情也不例外,Autoconf中有很多脚本和指令帮你做事情。这里,需要使用ax_lib_mysql.m4来帮助我们。先把该文件放到程序/工程目录中,并在configure.ac中新增如下指令来检测MySQL库文件和版本:

m4_include(ax_lib_mysql.m4)
AX_LIB_MYSQL()
AM_CONDITIONAL(BUILD_MYSQL_SUPPORT, test x$MYSQL_VERSION != x)

说明:AX_LIB_MYSQL()设置了三个变量,可以在Makefile.am中直接使用,分别是MYSQL_CFLAGS、MYSQL_LDFLAGS、MYSQL_VERSION,另外还会在config.h中预定义宏HAVE_MYSQL;AM_CONDITIONAL(...)则会根据是否需要开启MySQL支持,来设置变量BUILD_MYSQL_SUPPORT,这个变量可以在Makefile.am中使用。

在程序源代码中一般有两种方式可以获取HAVE_MYSQL宏的方式:一个是直接包含config.h;另一个是在你程序的CFLAGS中新增-DHAVE_MYSQL。(注意:有的变量是可以在Makefile.am中使用,有的则是可以在C源代码中使用)[......]

Read more

使用tar+lz4/pigz+ssh更快的数据传输

2013-11-8 10:41  |  分类:Linux,MySQL

前面一篇介绍了如何最大限度的榨取SCP的传输速度,有了这个基础,就可以进一步的使用压缩来加速传输速度了。只使用scp,传输速率最快约90MB,本文通过压缩将把最快传输速率提升到约250MB/s(包括解压的过程)。

1. 结论

使用tar+lz4+ssh的方式能够获得最大的传输性能:

time tar -c sendlog/|pv|lz4 -B4|ssh -c arcfour128 \ -o"MACs umac-64@openssh.com" 10.xxx.xxx.36 "lz4 -d |tar -xC /u01/backup_supu" 3.91GiB 0:00:16 [ 249MiB/s] real 0m16.067s user 0m15.553s sys 0m16.821s

249MB/s,妥妥的。是最原始scp(40MB/s)的6倍,原来400GB传输需要约3小时,现在只需要27分钟了。

注1:lz4在解压方面的优异表现,使得他在本案例中非常重要。如果无需解压的传输,则可以考虑使用pigz/pbiz2

注2:使用pv观察,网络流量约80MB,所以使用nc替换ssh并不会有明显的性能提升

注3:lz4压缩使用-B4(64KB块大小),解压使用-B7(4MB块大小),是本案例的测试最优值[......]

Read more

Pages: 1 2 3 4 5 6 7 8 ... 27 28 29 Next