磁盘信息

在linux下想看什么分区对应的哪个盘没有第三方工具根本搞不定啊。默认的/dev/disk/by-id/ 还是太弱了。网上找到如下工具。主要是分为raid模式和非raid模式。

而且现在各种raid,就得注意哪个raid分的是哪个磁盘哪个分区。

无raid模式下很简单,一个物理硬盘就代表一个设备。主要工具是sdparm或者是hdparm。 这2个工具其实是差不多的。只是现在都是sata2以后的接口了,所以还是sdparm更多点


sdparm -p sn /dev/sda 对应与 hdparm -i /dev/sda

[timo@11 hdparm-9.43]# sdparm -p sn /dev/sda
/dev/sda: ATA ST32000645NS RA0A
Unit serial number VPD page:
Z1K000VR

#ST32000645NS:这个就是磁盘的型号
#Z1K000VR: 这个是磁盘的序列号

而对于装了megacli工具的,那也可以用下面命令查看Inquiry Data这行信息就能知道了。
megacli -PDList -aALL

还有工具是lsscsi工具也可以,但是这个工具看不到序列号。

有raid模式的稍微复杂点了,只能通过megacli这样的工具来看了,下面这个命令的slot number就是对应的插槽号。

megacli -cfgdsply -aALL

如果用lsscsi显示的话,可以看到那行显示的就是磁盘的型号,而是raid卡型号。

[timo@11 ~]# lsscsi -p
[0:2:0:0] disk DELL PERC H710 2.12 /dev/sda

台湾游记–墾丁之二

墾丁的第二天,天气晴,时有多云。这一天是来台湾后去的各种景点最多的一天,可也有2个地方没有去成。

早上起来发现天气还不错,吃过民宿的早饭后,骑着民宿的电动自行车就出发了,这这个自行车最多只能来回15公里左右。

第一站,墾丁牧场。 这里是墾丁奶牛的家,这边很多店里有卖产自这边奶牛的新鲜牛奶。看它们自由自在的吃着草呢。

内嵌图片 1

看完牧场后本来想买点当地的特色,可惜这个牧场跟特产专卖是2个地,为了节约电池就没有去成。

转完牧场就直接往鹅栾鼻公园挺近了。 为了节约电池,这一路上下坡基础都没加速,直到时速低于10公里了才加点油门。走着走着经过了船帆石。

听这个名字就能明白这里有各跟船帆一样的石头,可惜小人眼浊居然没有看出来这个石头怎么像船帆了,船帆不就是类似三角形的布啊。 可这个就是个正方体啊。只能说台湾人太会起名了。上次在野柳,各种石头都有名字,什么冰激凌啊等等。

内嵌图片 2

这墾丁的天气就是变化多端啊,刚才路上还阳光明媚,现在居然多云了,并且下起了小雨来了,不管它丫了,我们可不能这点小雨而放弃了行程。

车行到砂岛的时候太阳居然又出来了,为了怕后面到了鹅栾鼻公园天气不好,我两还抓紧在这里照了几张大海的照片。这碧绿碧蓝的海啊,岸边都是各种珊瑚礁,两呆子在这边摆好三脚架各种自拍啊。

终于到了鹅栾鼻公园了,门票忘记是否免费了,但是停车费10元新台币倒是记得很真切,毕竟一个在大陆从来没有交过停车费的人,来这里居然成了有车一族,还给交了停车费。

这里其实大着呢,有灯塔,有鹅栾鼻的碑,还有海边栈道,这个都是木头的架在了珊瑚礁之上。趁着光景好,赶紧来几张。
内嵌图片 3

走完海边栈道,就是一段丛林小路,直接到了观景台,在观景台上我们可以看见对面的猫鼻头,据说那是一块伸出去的石头像是猫的鼻子,可惜我也没看出来,不知道是不是角度的原因。

在观景台也TMD再次碰见雨神了,于是我对于下午的行程感觉黯淡啊,估计得下雨,可再下雨也无法阻挡我们的行进步伐。

这个鹅栾鼻公园可是台湾八景之一,但是不知道是不是指这个灯塔,还是别的。这个碑下面明显有破坏的痕迹,但是不知道为什么没有维修。
内嵌图片 4

出了公园,看了地图。

发现这边离台湾最南点的标志还是比较近,于是就准备去了,但是还是抉择了好久,因为早上老板说了,这个电池只能往返鹅栾鼻公园和民宿之间,再远就没法保证是否能回来了。

于是赌了一把, 大概有20分钟就到了,一路上一会儿上坡一会儿下坡的。终于到了最南点。在路边停好电动自行车,见当地人都是直接把头盔挂后视镜上就走了,难道他们不怕偷吗? 下午去了白沙更是如此。

下了车,走了没500米,就看到一个楼,写着“台湾最南点观景台”, 其实这边最最南点还有800多米呢,感情这边也有山寨景点。 又走过800米的热带雨林,我们终于到了最南点,来个特写。

内嵌图片 5

再远的风吹沙实在不敢去了,毕竟还是离的很远的地,无奈返航。 回到民宿,一路上还很顺利,没有电池没有电哦。

回到了民宿,老板很慷慨的借了我们氢气车,这个是在当地有很多地方可以更换氢气的,这样就不用回来了,可这个理论上是需要驾照才可以开的,不过是绿牌的,老板说很少会被抓。 得了,上路。

这风驰电掣的。一瞬溜就到了后碧湖,这是干嘛的地呢? 这是潜水和吃海鲜的,我们都会去。

吃了最有名的一个大排档,100元台币20块生鱼片,这厚,这大,这个真是值啊。当地越是这种新鲜不烹调的东西越是便宜。而一些炒菜就要200,300这样的。所以来这种地方就吃生鱼片等等这样的就可以了。这个量实在有点多,结果最后还没吃完,行吧,打包我们走吧。

潜水,这个就算了。一个是不会游泳,另外一个危险。我们来这里是来换氢气瓶的。当然不是马上来换的,当中又去了一次猫鼻头。这边的海风明显比早上大很多,因为这边左边是台湾海鲜,右边是巴士海峡。又是当中一个比较突出的点,于是往来的海风就比较猛烈了点。

来台湾都没有怎么去过很好的沙滩,这个就很快弥补了。

白沙,是当地很有名的沙滩。开车走了,到了就发现当地车都是把安全帽挂后视镜的。而我们两居然拿着安全帽,背着包,以及那个生鱼片就上去了。球子宝宝还脱了鞋在沙滩上玩呢,这玩着玩着浪就来了。

内嵌图片 6

你看这父母带着孩子来玩的,还有居然带着小狗子来的,一个大浪过来把这些小狗子给吓的哦。哈哈哈。 远处还有撑着太阳伞的。这有点跟巴塞罗那那个海滩一样,不过人家大多是裸女晒太阳的。

nginx调优

因为跟后端app的统计时间对不上,所以有点怀疑是不是nginx proxy这边出了问题。 一开始用的strace来进行检查,发现是 recvfrom()这个系统函数比较慢,但是要更深入的解析,那strace就没有办法了。


strace -s 5000 -rp 1991 2>&1 | awk '$1 > 0.01'

google了下下发现agentzh大神写了很多关于systemtap的小工具,于是就直接用上了进行了分析。 主要是两个部分,一个nginx的用户空间的调用,另外一个是内核空间的调用。 要调试内核空间的话一定要安装kernel-debuginfo包才行,大家根据自己的内核版本来安装吧。

https://github.com/agentzh/nginx-systemtap-toolkit

由于系统默认的systemtap版本比较低,所以要自己手动编译安装2.1以上的版本,我就装了比较新的2.2.1版本,安装这个需要先安装好kernel-devel包才行。

wget http://sourceware.org/systemtap/ftp/releases/systemtap-2.2.1.tar.gz
yum install kernel-devel-2.6.32-358.el6.x86_64
wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-2.6.32-358.14.1.el6.x86_64.rpm
wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-common-x86_64-2.6.32-358.14.1.el6.x86_64.rpm
rpm -ivh *.rpm

在都安装完systemtap和debuginfo包之后执行下面这个进行测试看看:

stap -v -e ‘probe vfs.read {printf(“read performedn”); exit()}’

具体的用法在https://github.com/agentzh/nginx-systemtap-toolkit都有介绍的,下面是简单演示了一下其中几个的用法

[root@11 nginx-systemtap-toolkit]# ./ngx-active-reqs -p 23187
ERROR: MAXACTION exceeded near keyword at <input type="text" />:32:13
Tracing 23187 (/usr/local/nginx/sbin/nginx)...

req "POST /bid?", r=0x11c4510, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.036s, buffered=0, conn: ssl=0, from=110.75.20.114, reqs=11, err=0, fd=272, buffered=0, sending request to upstream
req "POST /bid?", r=0x10a0fe0, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.003s, buffered=0, conn: ssl=0, from=110.75.36.5, reqs=6, err=0, fd=56, buffered=0, sending request to upstream
req "POST /bid?", r=0x11c4e50, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.011s, buffered=0, conn: ssl=0, from=110.75.20.115, reqs=23, err=0, fd=269, buffered=0, sending request to upstream
req "POST /?", r=0x10a14e0, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.001s, buffered=0, conn: ssl=0, from=101.226.62.84, reqs=26585, err=0, fd=220, buffered=0, sending request to upstream
req "POST /bid?", r=0x11af4f0, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.014s, buffered=0, conn: ssl=0, from=110.75.36.5, reqs=1, err=0, fd=316, buffered=0, sending request to upstream
req "POST /bid?", r=0x11a2ef0, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.036s, buffered=0, conn: ssl=0, from=110.75.36.3, reqs=11, err=0, fd=184, buffered=0, sending request to upstream
req "POST /bid?", r=0x10e9f30, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.017s, buffered=0, conn: ssl=0, from=110.75.36.5, reqs=2, err=0, fd=134, buffered=0, sending request to upstream
req "POST /bid?", r=0x10bac20, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.019s, buffered=0, conn: ssl=0, from=110.75.20.112, reqs=3, err=0, fd=150, buffered=0, sending request to upstream
req "POST /bid?", r=0x1180a10, keepalive=1, spdy=0, host=www.sina.com, status=0, time=0.006s, buffered=0, conn: ssl=0, from=110.75.36.4, reqs=6, err=0, fd=147, buffered=0, sending request to upstream
WARNING: Number of errors: 1, skipped probes: 0
WARNING: /usr/bin/staprun exited with status: 1
Pass 5: run failed.  [man error::pass5]

上面这段信息并没有任何问题,所以需要更详细的分析了,只好看更深入的了。这里主要是通过火焰图来显示。要生成火焰图就还要再下载一个程序。

git clone git://github.com/brendangregg/FlameGraph

生成火焰图

./ngx-sample-bt -p 30763 -t 5 -k > c.bt
./stackcollapse-stap.pl ../nginx-systemtap-toolkit/b.bt > b.cbt
./flamegraph.pl b.cbt > b.svg

生成的svg图片要用浏览器打开,可以看到每个方块调用的方法名和具体时间信息。 比如我这个几乎每个系统调用的时间都非常的短。 下面这个图就是展示了每个内核调用的时间,基本上大部分都是iptables的部分。但是每个时间还是相对比较短的。 看来要在nginx这边再优化的工作比较少了,只能在后端app上找原因了。

台湾游记–之垦丁

垦丁是近几年才流行起来的一个地方,因为在台湾岛的最南端,同时又是电影《海角7号》的拍摄地,所以现在人也是非常多。

去垦丁的路线有两种,一种是高铁左营站直接下来坐垦丁快线,另外一种是坐台铁到枋寮站,然后还是坐垦丁快线。 看来这个突出去的半岛是没有直接到的火车了,要是有直接到的火车,估计人会更多。

我们是从花莲坐火车到枋寮站的,一路上经过了池上这个站,特地赶着下去买了2份池上便当吃,真没白花这钱啊,这是TMD在台湾最好的一餐。这上面的广告纸一下子让人感觉来到了30年代的上海。关键是价格便宜啊,一份菜70新台币,比帝都的火车快餐便宜多了。

内嵌图片 1

到了垦丁,一下子天就蓝了,但是马上就多云了。 枋寮车站看着还是非常老的,青天白日旗在蓝天白云下舞动着。
内嵌图片 2

在垦丁也是住民俗啦,这边民俗都是各种小别墅,我们住的这个还离垦丁牧场很近哦,牛啊马的都爱懒洋洋的趟在大草地上。
内嵌图片 3

内嵌图片 4

收拾完房间,我们就来到了垦丁夜市,真是热闹啊,因为这边白天太热了,所以大家都爱晚上出来。由于垦丁处于恒春半岛上,所以这里的天气变化可比台北夸张多了,走着走着下5分钟大雨,然后又好了,过了一会又下个3分钟,问了下当地人,说最近就是这样,而白天就一直很晴朗的,路上居然又碰到2个雨神。这边的水果还是非常多的,吃了很多很多。

内嵌图片 5

这就是刚下了大雨的垦丁夜市。 吃了一点小吃, 也就原住民的烤鱿鱼还不错,其他都挺难吃的,也吃了传说中巨好吃的戎将军包子,没啥人,也不怎么样。

好了,第一天就这样了吧。好好休息明日继续。