0%

time out这个问题是我刚实习的时候所有的业务组就都存在并且反应的。但是最近这段时间才定位了错误,固然这中间弄了小文件系统等等,但主要还是本人能力不太够导致的。

由于定位的时间拖得太长,导致大家对twemproxy-redis都有一种不稳定,不放心的看法,然而今天要为它正名:

代码没问题,一切都是网络不稳定惹的祸。

1 首先分析测试环境。

在测试组和同步业务的帮助下,我们拉来了device的数据进行测试(使用了ntpdate对所有机器进行了时间同步)

阅读全文 »

twemproxy的性能应该很好,毕竟是twitter在使用的,稳定性应该很高。

然而测试组的同学对其二倍扩容以后,基本没提升QPS,甚至QPS还降低了

我和我的小伙伴们一直以为是客户端或者服务端代码的问题,各种抓包,LOG分析,查不出原因。写了C,JAVA等多个客户端版本。

后面发现原来是测试组的布线坑爹了。

关于之前测试环境redis集群极限qps提升不上去的问题,认定是由于之前4台测试环境部署的宿主机,走的交换机,交换机网络达到瓶颈导致的。

阅读全文 »

FastDFS组合nginx的http_image_filter_module建立的图片服务器,实现动态缩略图

用fastdfs存储图片,然后用nginx的图片处理模块http_image_filter_module处理图片,根据输入的地址中的图片大小动态生成缩略图

原图http://192.168.8.127:801/group1/ ... WAAL8RoEHXq8410.jpg

动态生成的缩略图地址

http://192.168.8.127:801/group1/ ... HXq8410,222x222.jpg

阅读全文 »

我的学习历程是先接触的nosql而后接触的mysql,所以这里记下的只是初学的一些东西,没什么见地。

安装mysql并且初始化

查看有没有安装过:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
yum list installed mysql*
rpm -qa | grep mysql*
```

安装mysql 服务器端:

```c
yum install mysql-server
yum install mysql-devel
```

数据库字符集设置

mysql配置文件/etc/my.cnf中加入default-character-set=utf8

启动mysql服务:service mysqld start或者/etc/init.d/mysqld start

创建root管理员:

```c
mysqladmin -u root password root
```

忘记密码:

```c
service mysqld stop
mysqld_safe --user=root --skip-grant-tables
mysql -u root
use mysql
update user set password=password("root") where user="root";
flush privileges;
```

远程访问

>开放防火墙的端口号

>mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”:

```c
insert into user(user,host,password) values('root','%',password('root'));
```

>给插入的这个账户提供所有表的操作权限

```c
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;
```

导出指定库到本地的目录(例如mysql库)

mysqldump -u\(USER -p\)PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql

阅读全文 »

fastdfs的后台监控程序里有一段关于字符串解析的操作,使用snprintf进行字符串连接后无论如何解析的字串都是错误的

snprintf(buf,1024,"%s%s",buf);

问题出在这一句,因为sprintf系列比起strcat方便很多而且更加灵活,所以我一直使用sprintf来进行字符串的连接操作,没想到用snprintf就跪了。

后来用sprintf就没问题了

看了一下man

阅读全文 »

本来觉得linux下性能分析只是一系列工具,也没什么难点。后来发现几个工具中间,各有优缺点。

稍微介绍下吧。

gprof:

Linux性能评测工具之一:gprof篇

这个工具比较轻量级,能看到所有的函数调用链,和函数运行时间,原生是只支持单线程监控的,通过文中的方法,可以支持多线程

阅读全文 »

记录会比较零碎,是一些学习经验吧

1.之前一直对fastdfs的nginx模块不够了解,稍微思考调研了下,解决了以前的疑惑

1
2
3
4
location /group1/M00{
alias /data/fastdfs/data;
ngx_fastdfs_module;
}

然后浏览器就可以根据ip/M00/00/00/aaaaaaaaaaaaaaa.jpg类似这样的连接去获取到fastdfs上的文件了

这个配置文件一直是知其然不知其所以然

阅读全文 »



#FastDFS源码解析(1)--------源码目录介绍

概念:

FastDFS是余庆(前阿里巴巴架构师,现易到用车架构师)开发的一个开源的轻量级分布式文件系统,对于小文件的存储性能特别高,适合以文件为载体的在线服务。应用场景不再赘述,网上相关资料不少。然而在很多家大公司明里暗里都使用了FastDFS以后,居然对他代码的分析文章这么少。本人才疏学浅,且尝试着分析一翻,如果分析的不好,诚心求教。

阅读全文 »

FastDFS衍生工具调研

对已有开源项目FastDFS的衍生工具进行调研,主要围绕作者本身提供的工具和github的项目进行,(google code上很多项目基于1.0或者2.0版本,参考意义不是很大)。Java-client就不讨论了,天坑。

以下衍生工具都是结合的当前稳定版的fdfs5.01。

fastdht

Fastdht是作者开发的基于一致性哈希的去中心化分布式KV,基于BDB。使用的人群非常少,对他功能的了解只能围绕源码和作者在论坛语焉不详的一些解释。

阅读全文 »