浏览模式: 标准 | 列表全部文章

责任,生命不能承受之重(一)

   早上7点半从慈利出发,接近9点到达青山小学。一幢破旧的楼房,2个长满铁锈的篮筐树在水泥地的篮球场上,雨后,有几滩积水。有2个有缺角的兵乓球台,水泥制品,有点年头了。32名小学生,共有4个年级,3个班。3年级和4年级放在一起教学。还有50多个小朋友在幼儿园。在3楼,有一个房间有一个室内的兵乓球台。由于长期的无人使用,已经变形。孩子们在学校吃饭,由于营养的关系,小家伙们大多不能使用兵乓球,当然,更不会打篮球,因为学校里面没有。学校共有2名公办的老师,3名代课的老师,2名幼儿园的老师,1名教职工,给孩子们烧饭。和我们接触的是资格最老的老师,用电动车,从十几里外的邮局,拉回来我们之前通过邮递送给他们的图书,一次拉回来一部分。每一个孩子,她都能叫出名字。有小孩调皮,她会像严母一样责备教育他们。

       说到水泥的篮球场,说到室内乒乓球台,她告诉我们,这是教育局干的事情。嗯,我想,她想表达的意思是,其实地方上对他们还是挺重视的。说道她的学校,她的学生,她总是如数家珍,一脸的自豪。谁谁谁的成绩很好,谁谁谁会画画,谁谁谁唱歌挺好的,谁谁谁成绩还不错,没读书了。

       社会赋予了她承担的权利,于是她留了下来,这是一个没有荣誉,没有勋章,没有加薪的工作,让她驻足,一守就是十几年的动力,或许只是那些成就感了。没有承诺,就能相守大半生。我们经常在算得失,算加班,算薪水,在她面前,我真有点抬不起头来。

       另外的一名老师,得知我们捐助的钱,是来源于我们自己的工资,我们公司员工的工资,她一直怕给我们添麻烦,增加我们的开销。她说,你们的钱应该用在更需要帮助的孩子身上,她说,如果你们不怕麻烦,我想提个要求,如果你们能帮我们幼儿园的小孩提供点玩具,不用很多,让小孩子们有个玩具就挺好。几个人轮流玩一个也行,她看上去还年轻,说完这些,脸都红了。可能她觉自己觉得,她不应该提要求,但是她还是说了。

       这就是作为50多个孩子们他妈的责任,不为己,于是她最后说了出来。嗯,这就是我们此行的目的,我们能怎么帮助他们,这个才是关键。

       课间休息的时候,我们离开了青山小学,我们捐助的书尘封在柜子里,没有多少小孩子能看的明白。而学前的教育,小学4年级前能读的书,玩具,只能发动我们基金会的全部成员,去募捐了。希望能给他们一些还算满意的答复才好。 

    不是你们独自在坚守,我们一起。我想,他们的作为是能匹配得上伟大这个形容词的。坚守,会是我们心中的一面旗帜。

我结婚啦

和EMMA同学在2010年的第一个月底认证结婚,然后在2011年1月回家结婚。结婚像打仗一样,穿得西装笔挺了就是不停的敬烟。

大小: 1.65 M
尺寸: 400 x 267
浏览: 47 次
点击打开新窗口浏览全图

07年3月份认识,到现在,呵呵,4年了。

EMMA同学陪着我在顺德,在广州,在深圳,最后和我一起到上海,她挺不容易的。

原版的广东口味,为了我,开始不断的吃辣,并现在口味和我统一。

原版的学院派风格(主要表现是不爱动弹),居然能爱上打台球(主要是我很喜欢去打),也算是一种大的突破。

原版的广东土人,怕冷,和我来到了上海这么一个冬天死冷,夏天死热的地方,10年4月份,甚至在可能有到北京机会的时候,说,愿意和我去北京。

知道我不爱动弹,爱睡懒觉,早上能出去买早餐,等我醒的时候,如果冷了,帮我加热了吃。

还有很多,不一一列举了。

嗯,说实话吧,我真赚大发了。

大小: 1.66 M
尺寸: 400 x 267
浏览: 35 次
点击打开新窗口浏览全图

sybase优化指南--某测试

Sybase自身调优

所有的数据库设备均使用direct IO

锁级别

更改锁级别为 行锁。

 

alter table dbo.WFWorkItem                   lock datarows;

 

见数据库目录  表锁类型.sql

 

注意,如果执行失败,可以通过更改数据库的属性来解决。

其他调优

见数据库  优化集合.sql

sp_configure "default network packet size", 10240 --默认网络包

sp_configure "max network packet size", 10240 --最大网络包

sp_configure "max memory",0,"6553M"  --(设置为共享内存的75%,重启生效)

sp_configure "allocate max shared mem",1   --(启动的时候自动分配max memory指定的最大内存)

sp_cacheconfig "default data cache","3200m" --(设置数据缓存为max memory的一半)

sp_cacheconfig "default data cache","cache_partition=2"     --(SMP的环境中还有一个问题就是螺旋锁的竞争,当用sp_sysmon观察到资源缓存螺旋锁争夺超过10%时就需要分区。)

sp_poolconfig "default data cache","128m","16k" --(增加一个16K I/O缓存池,解决排序等大IO操作,需要在长期观察后才能使用性能最佳化.)

sp_configure "procedure cache size",102400 --(过程高速缓存,通常是Max mem20%,这里是200M)

sp_cacheconfig 'tempdb_cache','200m','mixed'  --(创建一个200M命名高速缓存tempdb_cachetemdpb使用)

sp_bindcache 'tempdb_cache',tempdb --(tempdb_cache绑定到tempdb)

--2CPU(默认值为1)

--当服务器的CPU个数多于一个时,可以考虑多CPU进行并行处理。(并行查询、并行dbcc、并行建立索引、并行bcp)

--可根据实际CPU数来修改,若CPU>1时,一般设置为N-1。实际上OS会自动调度。

sp_configure "max online engines",8

sp_configure "number of engines at startup",8

sp_configure "number of worker processes",200 --(并行度*并发连接数*1.5)

sp_configure "max parallel degree",1  --(允许CPU并行)

--3、连接数(默认数为25,可根据应用需要来修改,连接数不宜太多

sp_configure "number of user connections",600

--4、锁

sp_configure "number of locks",100000

--5、索引对像

--数据库空闲状态下运行:sp_countmetadata "open indexes"

--正常运行时运行:sp_monitorconfig "open indexes"

--来确定一个最佳值,增加10%左右。

sp_configure "number of open indexes",20000

sp_configure "number of open objects",20000

sp_configure "number of open partitions",15000

--锁升级大小

sp_configure "page lock promotion HWM",10000

sp_configure "page lock promotion LWM",5000

sp_configure "row lock promotion HWM",10000

sp_configure "row lock promotion LWM",5000

 

库表调优

索引删除

删除无用索引:

 

在目前的用例中:

 

'WF_IDX_ACTINST_ACTDEFID'

'WF_IDX_ACTINST_PROCID'

'WF_IDX_H_ACTINST_ADEFID'

'WF_IDX_H_ACTINST_PROCID'

'WF_IDX_H_TRANC_PROCID'

'WF_IDX_H_TRANS_PROCID'

'WF_IDX_H_WI_ACTID'

'WF_IDX_H_WI_PROCID'

'WF_IDX_PART_GLOBALID'

'WF_IDX_PROCINST_PRODEFID'

'WF_IDX_TRANC_PROCID'

'WF_IDX_TRANS_PROCID'

'WF_IDX_WI_ACTID'

'WF_IDX_WI_PROCID'

'IDX_WFHWI_PARTIC'

'IDX_WFWI_PARTICI'

'PK_WF_H_WIParticipant'

 

使用最多的索引:

 

ObjectName,LogicalReads,PagesRead,UsedCount

'IDX_WFWI_4ABC',3018890,2000,201048

'WF_IDX_ACTINST_ACTDEFID',2562953,1010,0

'PK_WFACTIVITYINST',2543354,4,553495

'PK_WFWORKITEM',2519425,4,503057

'WF_IDX_WI_ACTID',2417832,4,0

'WF_IDX_WI_PROCID',2414082,4,0

'WF_IDX_ACTINST_PROCID',2324417,3,0

'PK_WFWIPARTICIPANT',1902591,3,301572

'IDX_WFWIPART_WIID',1714977,3,251310

'IDX_WFWI_PARTICI',1609752,457,0

 

其他的索引,基本可以删除,相机而删。

绑定缓存

sp_bindcache 'default data cache','bps','WFWorkItem'

sp_bindcache 'default data cache','bps','WFActivityInst'

sp_bindcache 'default data cache','bps','WFProcessInst'

sp_bindcache 'default data cache','bps','WFTransCtrl'

sp_bindcache 'default data cache','bps','ABC_LOAN_APPLY'

 

绑定default data cache bps。这一部操作需要在master库中进行。

 

然后把default data cache 绑定到 对应的表。

增加索引

wfworkItem增加索引:

 

USE bps

go

CREATE NONCLUSTERED INDEX IDX_LOAN_APPLY

    ON dbo.ABC_LOAN_APPLY(APPLY_ID)

go

IF EXISTS (SELECT * FROM sysindexes WHERE id=OBJECT_ID('dbo.ABC_LOAN_APPLY') AND name='IDX_LOAN_APPLY')

    PRINT '<<< CREATED INDEX dbo.ABC_LOAN_APPLY.IDX_LOAN_APPLY >>>'

ELSE

    PRINT '<<< FAILED CREATING INDEX dbo.ABC_LOAN_APPLY.IDX_LOAN_APPLY >>>'

Go

此索引为查询待办使用。

 

以下操作在公司内部可以在控制台安装数据库时已经ok,所以没有使用。

 

tempmaster中剥离出来:

tempdb数据和日志分离:
USE master
Go

DISK INIT name = 'tempdbdev01', physname = '/opt/sybase/data/tempdbdev01.dat' , size = '1G',dsync = 'false'
Go

DISK INIT name = 'tempdblogdev01', physname = '/opt/sybase/data/tempdblogdev01.dat', size = '1G',dsync = 'false'
Go

ALTER DATABASE tempdb ON tempdbdev01 = '1G' LOG ON tempdblogdev01 = '1G'
Go

USE tempdb
Go

删除tempdb上使用的master段:
EXEC sp_dropsegment 'logsegment', 'tempdb', 'master'
go

EXEC sp_dropsegment 'system', 'tempdb', 'master'
go

EXEC sp_dropsegment 'default', 'tempdb', 'master'
Go

如果已针对 tempdb 建立了设备,则只需禁用 dsyncio,但需要重新启动 Adaptive Server
EXEC sp_deviceattr 'tempdbdev01', 'dsync', 'false'
Go

EXEC sp_deviceattr 'tempdblogdev01', 'dsync','false'
Go

再访北京

上周二上午11点左右,衣风在msn上,string,有个事情需要你帮忙。我说好啊,没问题。

下午2点20,衣风同学说,回家收拾一下,晚上到北京。

于是,我在上周二晚11点20,成功的在帝都机场落地,进行了为期一周的,艰苦卓绝的斗争,和产品,和客户,和自己的斗争。最终更深入的了解了产品,挑战了客户,也挑战了自己。嗯,这种感觉挺好。

--产品--

公司的产品有没有问题,我算是比较清楚的,主要的几个开发人员,我都还算熟。并且他们给我留下了深刻的牛人的光辉形象。毕竟,出去的报告,产品第一版本的性能测试,还是走我手的。

这次没有悬念的没有挑战成功,产品本身可能有这样那样的功能性问题,性能,他还真没问题。当然,这是在硬件环境比较OK的情况下。

某次和一产品线经理喝酒,他端着杯酒,说,哥们,我需要你告诉我的是在什么情况下,我们PK必输。我当时说出了一个条件,他喝了那杯酒。看样子,我可能又找到了一个能让他再喝一杯的方法。

--性能测试--

虽然我的工作重心不是性能测试,而是通过性能测试这种手段来找到产品中的瓶颈。于是我经常这样麻醉我自己,觉得自己全方位的性能测试做的不好是可以原谅的,loadrunner这种工具不会充分使用是能理解的。

大爷的,发现自己骗自己真是容易。

此次来京测试,办公室有一个很有风度的哥们。在第一天性能测试还未开始之前,鄙人大放阕词,说本次测试的一些要求,环境的准备,我们做什么。嘿嘿,那哥们一声不吭的坐在一边。

后来当本人基本属于抓瞎的状态的时候,他的及时出手拯救了半场测试,而后来告诉我,他们一直用loadrunner8的原因,深以为然。

哥们这次回去,就去更新自己的版本,每台机器上装2个版本的loadrunner。原来loadrunner是可以监控WAS的,监控weblogic的,可以监控oracle的,可以监控sybase的,它的强大,可能超出自己的想象。

说起来,除了自己的摸索,经验的积累,让牛人始终有显摆的机会,才能学习到更多。

应该和某同学交涉下,如果他始终不教我上树的本事,以后凡是有老鼠,他还是要亲自来抓。

此次收获着实不小。

--sybase15.3--

这玩意其实挺破的,最难受的,这玩意的最新的驱动还没发布,还是局方内部的哥们拿出来的,2010年9月份编译的版本,比较抓狂的说。

不过也算知道怎么调整sybase的性能了,经验,可能就是这么磕磕碰碰出来的。

比如要把数据库文件和日志文件分开,比如对应多少内核的CPU,要启动多少数据库引擎,再比如说调整页大小,设定表的锁级别。不一而足。

--路盲--

可能在方向感上,还不如一些小P孩。但是我相信大部分方向感很好的人,都去过不少地方。

就像定位问题一样,经验决定一切。

本次的问题定位,从开始的数据库驱动,隔离级别,到数据库索引,锁级别,再到tracert查看网络跳转,到拷贝共享文件确定网络带宽,到应用服务器,http接入服务器,到loadrunner的脚本设置,结果集的分析,到性能瓶颈的定位,但回过头来看看这个故事的发展,可能其他人来做这个事情,就是比你优秀,这是为什么?

难道自己就真的不能再想的深入一点么?

开始怀疑的网络带宽问题,没有深究,导致后面测试工作的被动,还做了很多无用功。

说到底,还是没有细想产品对网络的要求,对应cpu的要求,对于内存的要求,对于磁盘的要求。

走的远了,就不会迷路了;只在一个小范围兜圈子,嗯,有鬼打墙的嫌疑,心中的鬼啊,需要自己去突破。

--岳昆--

和这哥们挺有缘分的,当时查找我们公司找到我BLOG,然后msn聊天,上次来北京的网友见面。呵,那时候说,希望有机会能尽快合作。没想到就是这么快。

我喜欢爽快的年轻人。开着狮跑,小心谨慎;和客户沟通的时候,方寸有度,琢磨着客户每一个发问的深层含义。嗯,想想在上个部门的时候,还真是差距很大。您说现在,呵,那差距更大了。

--自我挑战--

和大领导们中午电话会议,给出我们的结论。

后来调整了数据库的引擎个数,客户的平台性能翻番。心里忍不住嘀咕,反正哥们搬石头砸自己也不是第一回了,本着王八蛋的态度,在调整后的数据库上再次测试,还好,这次我没有砸住自己。

可能就要砸到其他的哥们啦。

--客户--

客户是一个很有意思的群体。

如果他们耍王八蛋,也不能讲那六个零的笑话不是?改天找个销售同学学习下。能让耍王八蛋的人变成王牛蛋,该怎么做才能有效果。

如此。

--全责心--

这几天我一直在考虑这个报告要不要出的问题。

出了报告,白纸黑字,红口白牙,肯定说不清楚的。而这报告是我出的。那么问题出来了,你要负责的把这件事情搞定,已经不可能了。客户说了,我们就这环境,你能怎么着?

那剩下的事情,就是把能做好的事情做好,这谁都能说。而如果这次测试失败,公司内部,不了解情况的,一定归罪于我,而我也自责的不行。

这就是矛盾。

是要适当的放弃一些东西才好。

Tags: 北京

野蛮生长

梦到小学时候的班主任,咄咄逼人的问我,胖子为什么不欺负别人。我回答不出来。给吓醒,然后躺在床上,大脑一片空白。

梦到大学时候的高数老师,说,只要我带这门课,你就别打算及格。别上课了,准备重修吧。后来看到一比我更不像话的哥们给他拎了一袋东西,然后他以60.5的高分通过考试。

咄咄逼人的质问和利用手上仅有的权力给自己谋福利在我不算成熟的心中留下了深深的一笔。

上上周末kevin婚礼,在崇明。

本以为会有很多大学的同学前往,细问之,原来就邀请了我们一起患难的几个兄弟。细数下来,在易趣的Juan,在youku的aiter,在sap的willimas和区区在下。

aiter远在北京,10月在京小聚时,说可能会过来,在自我催眠的学习中,学习到的,当在自己的意识中告诉自己,我可能要去做什么事情,一般这个事情到最后就扯淡了,不会有行动。因为总有推辞,比如忙,没时间,比如时间太短了,来回的钱和呆的时间不核算。

willimas说,我知道消息太迟了,那天晚上买好了怒放的演唱会门票,要不你给我报销一半我就去参加kevin的婚礼了。大家还差不多在一起混的时候,我一直就没太懂他的思维模式,分开了一些时间,发现,差距更远了。

鄙视下自己,价值观还停留在《亮剑》的魏和尚的高度,和尚说,啥都没有情分重要。干!情分现在值几个钱,能比演唱会的门票贵么?

上周末宿舍老大生日,和applelew,liuyw去老大他家。

这厮住在装修很不错的三室两厅的房子,string,applelew都携夫人前往,liuyw目前单身。然后一坨人在那里打游戏,聊天。火锅的时候,老大给每人上了一杯酒,不再续。呵呵,这里又要开始想当年了,04年,我们一个宿舍4个人,喝了其他好几个宿舍,喝倒了好几个。我一直认为,这是我们没有机心,单纯的活着的最好表示。那如果按照我的认为,现在表示着什么?

总是各有各忙,和applelew多年弟兄,02年到现在,算下来也8年了。从09年我回上海,邀请一起打台球,总是很忙。4次能有一次应约。这也算是江总努力练习台球的原因。到后来,江总已经能在大比分上获胜了,我也觉得打的挺好,算起来,这多年的弟兄不常联系,是不是就慢慢淡了?

--------------------------------------------------------------------------------------

叔打电话过来抱怨,我堂弟不给他电话,说这个人像人间蒸发一样。我说,这个不是他一个人的问题,你们俩都有问题。就算现在,我弟就比我小两岁,我叔在他面前,也是没几句好话,全是在骂他。

一直在听翟鸿声的讲座,何为孝:犬马皆能有养,不敬,何有别乎;我在想,何为教:犬马皆能有养,不文,何有别乎?吃饱穿暖,野蛮生长的孩子啊,他们懂孝顺么?知道怎么孝顺么?

给老妈打电话着实的恭维了一把她的家教有方。想想,3岁看80,没有3岁之前老妈的那些故事,我可能都不能像我现在这样,虽然也是惨淡经营,但是如果没有那些故事,我就连惨淡经营都不够格。我很感激。

--------------------------------------------------------------------------------------

一直离一个优秀的工程师差很远,执行很难。

努力。

Records:61812345678910»