shitou's blog 

  • Home
  • About
  • Feed
  • 十人族
  • MIX BOY
  • 塌客
22
Sep

监控mysql的性能

前面一篇日志中说明了怎样安装MySQL的监控工具,这里说下如何通过监控工具得到的数据来看判断MySQL的运行状况

 

在MYSQL的官方网站找到了一篇这方面的文章,地址

后来找到了一篇对应的中文翻译,地址

 

这里列出了一些如何监视你安装的mysql性能的一些ideas。监视总是一个持续的过程。你需要知道哪种模式对你的数据库是好的,什么是问题的表象,甚至是危险的情况。
一下列出了用来去监视你的系统的主要参数:
- mysqladmin extended (绝对值)
- mysqladmin extended -i10 -r (相对值
)
- mysqladmin processlist
- mysql -e "show innodb status"
- OS data. vmstat/iostat
- MySQL error log
- InnoDB tablespace info.

1) mysqladmin extended (绝对值)
重点去监视的值有:
* Slave_running:如果系统有一个从复制服务器,这个值指明了从服务器的健康度
* Threads_connected:当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。
* Threads_running:如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当Threads_running值超过预设值时并且该值在5秒内没有回落时, 要同时监视其他的一些值。
2)mysqladmin extended(计数器)
* Aborted_clients:客户端被异常中断的数值(因为连接到mysql服务器的客户端没有正常地断开或关闭)。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为异常中断连接可能表明了一些应用程序有问题。
* Questions:每秒钟获得的查询数量。也可以是全部查询的数量(注:可以根据你输入不同的命令会得到你想要的不同的值)。
* Handler_*:如果你想监视底层(low-level)数据库负载,这些值是值得去跟踪的。如果Handler_read_rnd_next值相对 于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler_rollback表明事务被回滚的查询数量。你可能想调查一下原因。
* Opened_tables:表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2.
* Select_full_join: 没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。
* Select_scan:执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应该是常量(注:Select_scan除以总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。
* Slow_queries:超过该值(--long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。
* Threads_created:该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。
3)mysqladmin processlist or "SHOW FULL PROCESSLIST"命令
你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行 的查询花了多长时间是一个好主意。如果有一些长时间的查询(由于很差的构思或公式),管理员可以被通知。你可能也想了解多少个查询是在"Locked"的 状态—---该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。
4) "SHOW INNODB STATUS"命令
该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。
* Pending normal aio reads: 该值是innodb io请求查询的大小(size)。如果该值大到超过了10—20,你可能有一些瓶颈。
* reads/s, avg bytes/read, writes/s, fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。
* Buffer pool hit rate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率
* inserts/s, updates/s, deletes/s, reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。
4)OS数据。查看系统状态好的工具是vmstat/iostat/mpstat,这些可以看man手册
5)MySQL错误日志-----在服务器正常完成初始化后,什么都不会写到错误日志中,因此任何在该日志中的信息都要引起管理员的注意。
6)InnoDB表空间信息。InnoDB仅有的危险情况就是表空间填满----日志不会填满。检查的最好方式就是:show table status;你可以用任何InnoDB表来监视InnoDB表的剩余空间。

 

只做一下说明,上面文章中提到的各种参数,其中判断最主要的数据来源总结一下主要来自:

 

1.mysqlreport工具

2.show innodb status;

3.show table status;

 

根据以上结果的输出,结合几项重要参数值来做判断

 

mysqltuner是一个傻瓜式的MySQL优化工具,工具的运行结果会直接给出my.cnf应做如何的参数设置和调整,也是一个不错的工具

还有就是MySQL官方的数据库管理工具MySQL Administrator也有性能监控的功能,类似于windows的任务管理器

 

Tags: 监控

2008-09-22 13:31:16, 1123 reviews, comment

send to mailbox

Your email:

22
Sep

《日在校园》

两天时间看完了《日在校园》,继《妖精的旋律》后又是我看的一部比较悲情的动漫,这部看的让人很郁闷,也很伤心,搞不懂导演为什么会把男主角画成那样的性格,两个女主角(世界和桂)都是那么的善良,贤惠和多情,结局是bad ending, 桂和世界都让人很心疼,当世界拿起刀刺向诚(男主角)的那一幕,眼泪都掉下来了,不过我还是站在桂这边的,

 

又要几天心情才能平静了,真是喜欢自虐啊,,,,

 

SCHOOL DAYS 日在校园


中文名称:School Days  日在校园
英文名称:School Days
资源类型:DVDrip
发行时间:2007年07月
地区:日本
语言:日语
简介:(转自Verycd.com)


【片名】school days
【字幕】澄空学园&华盟字幕社



【内容介绍】


主人公「伊藤 诚」,在第二学期的时候,
突然发现了邻班的「桂 言叶」原来一直和他搭乘了同一列电车。
桂好象很喜欢看书,经常会在电车上看书看的入迷。
尽管这只是一个小小的发现,但是,却使得诚每天单调的学习生活里多了一分快乐。
“其实并不是马上就准备和她交往的,只是希望能从远处默默地注视着她。”
那一天,伊藤 诚 流露出了这样的一种心情。
一天,邻座的女生「西园寺世界」发现了 诚 手机里 桂 的照片。
热情的世界答应帮助会帮助诚 去设法接近 桂。
从次以后,世界便开始尽力地撮合诚和 桂。
一切似乎都在顺其自然地进行着。
但是这时,世界 的心情却发生了改变,渐渐地开始忧伤了起来。
终于有一天,在美丽的朝霞下,
伊藤 诚 第一次对 桂 说出了自己的心声,并约定放学以后在车站见面。
放学后,在车站,诚 和 世界命运般的相遇了。
那深深的一吻...
诚 呆呆地坐在那里,完全不知所措。
只留下那远去的电车里少女那哭泣的身影。
而此时,全然不知此事的 桂 正心中满怀期待地赶向车站。
3个人的恋爱故事,会是什么样的结局呢…

【人物介绍】



原本非常单调地过着每一天的生活、单恋着上学途中同一电车内的美丽少女。“只是希望能从远处默默地注视着她”,在世界的帮助下,所有的事情都发生了改变。



在班级里是诸多美好心情的制造者,只是稍微有点烦。但却似乎对某些事情有着美好的憧憬,有着可爱的笑容和明亮欢快的性格。有着无论什么事情都能够直说的性情,对所有告白的男生都会直接拒绝的。



拥有能够吸引所有人目光的美丽容貌的女孩,从前有过“男生恐惧症”,性格压抑,对于恋爱有些畏首畏尾。最后在世界的中间介绍下,接受了诚的表白。



沉默寡言、有着一种始终不变的表情、但却能够和那性格完全相反的、喋喋不休的世界互相沟通。



1年3组、世界的朋友



1年3组、世界的朋友。西点店里的少女。



1年4组、和诚来自同一所中学的朋友。篮球部部所属的少女。



诚的同学和好朋友,虽然人不错,不过看上去就不像是有恋爱对象的样子



言叶的妹妹,对姐姐有了男朋友感到十分高兴

【STAFF】

原作 : オーバーフロー
监督 : 元永庆太郎
构成/脚本: 上江洲诚/キャラデザ
总监督 : ごとうじゅんじ
动画制作: TNK

【CAST】

伊藤诚:平川大辅
桂言叶:冈岛妙
西园寺世界:河原木志穗
清浦刹那:井本惠子
加藤乙女:永见はるか
黑田光:田中凉子
泽永泰介:松本吉郎
桂心:亚城めぐ



【官方网站】

动画官网:http://www.schooldays-anime.com/









 

 

Tags: ACG

2008-09-22 11:03:01, 1160 reviews, comment

send to mailbox

Your email:

21
Sep

postfix中控制发送外部,内部邮件的方法

有些时候在postfix中需要控制某个用户只能发内部邮件(只能发给本域用户的邮件)

可以使用postfix 的 RESTRICTION CLASS 来解决

下面简单描述下RESTRICTION CLASS 的原理,明白这个原理就可以解决控制某个用户只能发内部邮件的问题


我们可以使用check_xxxx_access来进行一些控制,例如接受任何来自1.1.1.1的邮件,设置如下:
smtpd_recipient_restrictions = check_client_access regexp:/etc/postfix/client_access.txt

在/etc/postfix/client_access.txt
加入以下内容:
/1\.1\.1\.1/   OK


但是check_xxx_access的执行方式比较单一:如果符合某个“单一条件”,则执行某个动作

很多时候,我们需要符合“两个”或者多个条件才执行某个动作,
例如:拒接来自1.1.1.1的并且发送人地址为[email]a@a.com[/email]的邮件;
但是接受来自1.1.1.1,发送人地址为"非[email]a@a.com[/email]"的邮件

此时我们单一使用check_sender_access或者check_client_access都无法实现这个要求
需要结合这2个才行,此时就需要RESTRICTION CLASS

首先定义一个RESTRICTION CLASS :

smtpd_restriction_classes = myrestriction
myrestriction = check_sender_access regexp:/etc/postfix/sender_access.txt

在/etc/postfix/sender_access.txt文件加入以下内容:
/a\@a.com/   REJECT YOU ARE BLOCKED


再定义:
smtpd_recipient_restrictions = check_client_access regexp:/etc/postfix/client_access.txt
然后在/etc/postfix/client_access.txt加入:
/1\.1\.1\.1/   myrestriction

最后reload postfix则可以生效

 

转载 http://postfix.cn99.com/RESTRICTION_CLASS_README.html

Tags: postfix

2008-09-21 20:10:07, 908 reviews, comment

send to mailbox

Your email:

19
Sep

几部电影

推荐几部不错的片子,绝对经典

神秘之河 Mystic River

Plot:With a childhood tragedy that overshadowed their lives, three men are reunited by circumstance when one loses a daughter.


死人的鞋子 Dead Man's Shoes

Plot:A disaffected soldier (Considine) returns to his hometown to get even with the thugs who brutalized his mentally-challenged brother (Kebbell) years ago.

梦之安魂曲 Requiem for a Dream

Plot:The hopes and dreams of four ambitious people are shattered when their drug addictions begin spiraling out of control.

不速之客 The Visitor


Plot:A college professor travels to New York City to attend a conference and finds a young couple living in his apartment.

一生的唯一 Once


Plot:A modern-day musical about a busker and an immigrant and their eventful week in Dublin, as they write, rehearse and record songs that tell their love story.

转自 CNGBA
Tags:

2008-09-19 23:46:14, 741 reviews, comment

send to mailbox

Your email:

19
Sep

塌客: 一起生活, 一起分享

最近花了近一个月时间做了个微博客类的网站,还有很多不完善,尤其功能还有很多可挖掘的地方,比较忙,先搁置下来了,等再闲了接着写,

 

地址: 塌客

 

Tags:

2008-09-19 21:57:53, 712 reviews, comment

send to mailbox

Your email:

19
Sep

innotop / mysqlreport / mtop / DBD::mysql

最近在看mysql性能监控这方面,以前用过mysqltuner, 现在在关注innotop, mtop和mysqlreport, 由于这三个工具都是perl编写的, 并且都依赖于DBD::mysql模块, 所以在使用之前要先先安装DBD::mysql

 

DBD::mysql

由于DBD::mysql又依赖于DBI模块所以先安装DBI模块:

$perl -MCPAN -e "install DBI"

就行了

 

由于我系统中的mysql是从源码包编译安装的,安装的路径为/usr/local/mysql, mysql的库文件(lib)和头文件(include)不在默认的标准路径中,所以在通过CPAN安装DBD::mysql的时候会失败,这里去CPAN下载下来DBD-mysql-4.008.tar.gz文件,手动安装:

 

这个模块的安装不能像安装其他perl module一样执行perl Makefile.PL; make; make install, 因为它需要知道mysql的库文件和头文件位置,它在执行perl Makefile.PL时会自动去执行mysql_config(该程序随mysql发行, 位于mysql目录的bin中),得到mysql的参数,其中有cflag和lib的路径, 但是该程序的输出在编译安装的mysql中默认就是错误的,所以不能简单执行perl Makefile.PL, 必须指定mysql头文件和库文件的位置

 

$tar zxvf DBD-mysql-4.008.tar.gz

$export PATH=$PATH:/usr/local/mysql/bin

$perl Makefile.PL --libs='-L/usr/local/mysql/lib -lmysqlclient' --cflag='-I/usr/local/mysql/include'

$make; make install

 

然后再把mysql的库文件加入系统库的路径,不这样的话后面在使用innotop和mysqlreport时会报错,

$echo /usr/local/mysql/lib >> /etc/ld.so.conf

$ldconfig

 

Innotop

然后再安装innotop:

安装依赖的module

$perl -MCPAN -e shell

cpan>install Term::ReadKey

cpan>exit

$perl Makefile.PL; make; make install

innotop使用看help

 

mysqlreport

这样就行了,mysqlreport不用安装直接使用即可,

$./mysqlreport --user=NAME --password=PWD

 

mtop

mtop类似于系统的top, 对mysql进行即时监控

mtop依赖的module比较多, 除了上面提到的DBI和DBD::mysql外, 其他的见mtop的README, 直接用CPAN在线安装即可

使用直接:

$mtop

然后输入mysql的用户名和密码即可

 

 

Tags: 监控

2008-09-19 14:17:50, 1818 reviews, comment

send to mailbox

Your email:

上一页 1 2 ... 24 25 26 ... 34 35 下一页

Tags

json Impactjs Canvas fun gen_server superfly PS3 Webgame HTML5 jquery SSH tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • HTML5[3]
  • iPhone[17]
  • Erlang[11]
  • google[13]
  • 生活[45]
  • 音乐[13]
  • 电影[11]
  • linux[29]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[9]
  • ruby[20]
  • ruby on rails[28]
  • 开源[4]

Episode

  • MongoDB
  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache


Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • Ruby遍历MemCached的key
  • 服务器监控小脚本
  • MySQL Innodb备份
  • [转载]5个有用的ruby gems

Recommended Posts

  • Tri-survive - HTML5 Game
  • Cut the rope - HTML5版
  • json_formatter
  • 在gen_server中spawn新的进程
  • Superfly - Wildflowers
  • 继续凸墙 for Mac OS
  • MongoDB Beijing 2011
  • MongoDB删除map_reduce生成的tmp collection
  • Mai Kuraki - Future Kiss
  • Erlang OOP
  • 用SSH tunnel凸墙
  • Google的语法高亮工具包
  • 大量数据的批量操作
  • 再次被和谐-_-
  • 十人族: 上线了

Friends' blogs

  • levy
  • sphance
  • andreas
  • yangkunlun
  • {:dev=>:wxianfeng}
  • bheye
  • joeydarko

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 316248
  • 今天访问: 43
  • 日志: 213
  • 评论: 4967
  • 音乐: 9
  • 用户: 1758


少女,不点下广告吗!

 

all by shitou

blog comments powered by Disqus

close