Skip to content


Ignite Beijing 讲话报名

时间:2010年3月3日星期三,19:30~21:30

地点:奇遇花园咖啡馆(问路电话010-88320741)

地址:西直门北展北街9号华远企业号(华远地产)D座一层(地图

详情:http://club.blogbeta.com/149.html

好像上次的主题演讲ppt(amazon相关的)没有放上去。

Posted in 活动.

Tagged with .


关于 MYSQL 字符串类型的存储需求

关于mysql中的列类型如何定义,是一个让初学者让人头痛的问题。列类型的恰当定义是一个数据库高效存储的重要保证,其中字符串类型的定义是最重要也是相对较难的。很不幸到至今我才清楚char,varchar的真正定义方式 。
原因有二.
1.没有亲自动手去试错,文档上说的怎么样,就天真的认为就是那样
2.是看过官方源文档,但没有查看官方原版英文文档

咱们通过对比来加深记忆

1.mysq中文文档http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#storage-requirementsen_Storage_Requirements_for_String

2. mysql英文文档http://dev.mysql.com/doc/refman/5.1-maria/en/storage-requirements.html

Continued…

Posted in mysql.

Tagged with .


转载 snmp 重要的OID 备忘

转载自:
1. http://www.sysadmin.md/most-useful-snmp-oids.html
2. http://blog.chinaunix.net/u2/70049/showart_1136607.html

CPU
Percentages of user CPU time (ssCpuUser)
.1.3.6.1.4.1.2021.11.9
Percentages of system CPU time (ssCpuSystem)
.1.3.6.1.4.1.2021.11.10
Percentages of idle CPU time (ssCpuIdle)
.1.3.6.1.4.1.2021.11.11

Load
1 minute Load (laLoad.1)
.1.3.6.1.4.1.2021.10.1.3.1
5 minute Load (laLoad.2)
.1.3.6.1.4.1.2021.10.1.3.2
15 minute Load (laLoad.3)
.1.3.6.1.4.1.2021.10.1.3.3
Continued…

Posted in linux, 技术.

Tagged with , .


APC cause problems

看技术文档的时候很多作者的警告明知很重要,但经常被我们当作耳边风。不是我们有意把它们忘记,只是很多事情只是经历过之后才能铭记在心。

============================================
APC will probably be 20-30% faster, but if you are writing to it frequently it can cause problems. The APC cache is best for things that change very rarely. And by very rarely I mean days, not hours or minutes.

Because of the way APC does an anonymous file-backed mmap where I unlink the file at startup to get process-death protection, it isn’t easy to get at the cache from a separate standalone command line script. That can be solved by mmap’ing slightly differently, but in the default config your approach won’t work.

-Rasmus
==============================================

apc不适合用于缓存经常改动的内容。如果你的代码经常改动,最好先禁用cache.或者修改后清空一下缓存。

Posted in Web开发, linux, php.

Tagged with , .


Mysql中索引的限制

##摘自mysql的性能调优与架构设计##(备忘)
1.myIsam存储引擎索引键长度的总和不能超过1000字节
2.BLOB和TEXT列只能创建前缘索引
3.Mysql目前不支持函数索引
4.使用不等于(!=或者<>)的时候,Mysql无法使用 索引
5.过滤字段如果使用 函数运算(如abs(column))后,mysql无法使用索引
6.join语句中join条件字段类型不一致时,mysql无法使用索引
7.使用like操作的时候,如果条件以通配符开始(”%abc…”)时,mysql无法使用索引
8.使用非等值查询的时候,mysql无法使用hash索引

Posted in mysql.

Tagged with .


lsof:list open file

lsof的参数很多,不过搞来搞去无非是根据什么条件找出被进程打开的文件句柄。条件有根据文件名,文件夹,进程名,端口号,gid,fd等,太丰富了。当你用到的时候再查手册也来得及。
本人用这个解决的最头痛的问题是:一次由于磁盘空间占用较高了,于随手删除了几个大文件,然后用df查看文件系统使用情况,发现一直没有变。搞了半天找不出个所以然来,了解这个命令之后查询了一下这个系统中所有被打开的文件,发现原来那几个大文件被某个程序使用着呢。关闭那个进程后df结果正常。

Posted in linux, tools.


dd用于磁盘读写性能测试

dd是一个linux下的文件复制和转换程序。除非告诉dd命运去进行某种转换操作,否则它只是进行从输入文件到输出文件的复制工作。不过现在dd更多的用来进行磁盘性能的测试,而不是原始用于copy的意图。

/dev/null:回收站、无底洞. 你可以输入任何东西它不会吃撑着(这种能力吃自助比较合适)
/dev/zero:用于产生字符,会产生无尽的0字符

以下转换自网络(http://www.xclinux.cn/?p=777):不知是否原创,copy过来自己备忘!

1.测试磁盘写能力

time dd if=/dev/zero of=/test.dbf bs=8k count=300000

因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

2.测试磁盘读能力

time dd if=/dev/sdb1 of=/dev/null bs=8k

因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

3. 测试同时读写能力

time dd if=/dev/sdb1 of=/test1.dbf bs=8k

这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。

Posted in linux, tools.

Tagged with , , .


lvs+keepalived 实现负载均衡及快速故障转移

负载均衡主要有两种方式:硬件均衡器,软件均衡。前者是靠钱解决问题的,性能绝对优于后者,这次还是继续上回的穷人话题。如何利用省钱的方案简单的解决负载均衡以及故障转移。先上一个机器部署的示意图。
lvs keepalived
LVS: linux virtual server
lvs就是国产的优秀开源的项目之一,最简单的理解就是建立一个虚拟IP的服务器,然后通过这个虚拟机器把前端的请求转发到后面的真实服务器上实现负载分配。对于老的linux版本需要给系统打上ipvs的补丁,对于新的linux系统已内置了ipvs模块。

lsmod |grep ip_vs #查看是否已加载ipvs模块
sudo modprobe ip_vs #加载ip_vs模块

为了方便进行ipvs管理,还需要安装ipvsadm

sudo apt-get install ipvsadm

关于lvs工作模式的介绍这里有篇IBM的文档对lvs的三种模式的原理,说得十分的详细。

keepalived: 实现机器的心跳检查以及机器的故障转移。
1. 当真实生产机器出现故障的时候,会自动把出问题的机器从集群中删除,当出问题的机器恢复正常的时候,也会自动把机器自动添加到集群中来。这样就可以很平滑很方便维护线上的生产机器。
2. 从图中可以看出,如果没有备份虚机(192.168.1.200)的话。在192.168.1.100机器上还是出现了单点问题。keepalived会在192.168.1.100故障的情况下,把VIP切到192.168.1.200.这其中用到了vrrp协议。注: 开防火墙的朋友得把这两台机器的vrrp端口打开。不然keepalived无法实现主备机器的切换。

上配置文件喽!
192.168.123.100与192.168.123.200
软件:
1.ip_vs
2.ipvsadmin
3.keepalived
Continued…

Posted in linux, tools.

Tagged with .


nagios+libfetion+midpssh 网络监控报警解决一条龙

nagios: 一款出色的网络数据监控报警工具 http://nagios.org
libfetion: 移动飞信的非官方lib http://www.libfetion.cn/
midpssh: 移动端的ssh客户端 http://www.xk72.com/midpssh/

当然以上三者的结合,就是要解决服务器问题最快发现,最快通知,最快解决的方案。
在没有搭建这个报警平台之前,每天都在担心中度过,对所有机器的健康状态基本没谱,现在轻松了很多,一些机器都很长时间没登录上去过问了。下面分享一下经验,供所有像我一样的穷网管借鉴,的确只是一条穷人的经验。

一.搭建nagios:
关于nagios的安装,可以上网搜索一大把,这里就不在详细介绍。基本上有两种安装方式:
1。 用apt-get安装现成的软件包。 哈哈简单吧
2. 源码安装,参考资料最好的是官方说明文档,详细的出你的意料

和cacti一样,nagios在安装的时候就存在一些基本的监控脚本供使用,如果需要一些其它监控脚本可以自己扩展,或者下载一些现成的扩展。呵呵,这个网站提供的扩展够你爽 。

基本配置文件路径:
/usr/local/nagios/etc/nagios.cfg
在nagios.cfg中把很多监控对象都的子配置文件都存放到了 /usr/local/nagios/etc/objects 目录中

nagios提供了监控信息的web与wap展示以及设置。也就是说大部分的工作都可以在web前台完成。
apache的部分配置:


# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

Alias /nagios "/usr/local/nagios/share"


# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"

# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

Alias /nagios "/usr/local/nagios/share"


# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

如果用你的是nginx服务器请查看这里
Continued…

Posted in linux, tools, 技术.

Tagged with .


snmpd又囧了我一把

昨天机器硬盘问题,导致整机挂掉,真是让我郁闷,还好数据都是可恢复的。

最让我不爽的是却是snmpd,用snmpwalk检查localhost的信息一点问题都没有,可是其它机器snmpwalk这台机器的时候,死活超时。我原先以为是机器iptables设置的问题(这里面还有故事,哈哈),结果发现snmpd端口是开着的。万分不爽,求助朋友,在朋友的提醒之下发现原来snmpd默认安装只监听本机的127.0.0.1端口。于是改之,重启,一切正常

netstat -natup | grep 161 #检查snmp的监听情况

sudo vi /etc/default/snmpd #打开配置文件
Continued...

Posted in linux.

Tagged with .