ooaixt

 

最近接手了一台windows2003的机器,想在上面装点软件,但是系统速度实在是没法忍,复制一个400M的vmware,居然用了差不多一分钟!猜想是硬盘出了问题,于是用HD Tune测试了一下,结果果然不出所料。

写入性能如此之差,难怪了。网上找了一些可能导致硬盘写入速度慢的原因和解决办法,看到一篇说域控导致硬盘写入性能变差的。

在一些比较重要的服务器角色上,windows出于安全性的考虑,可能会自动禁止写入缓存,例如活动目录域控制器DC。这么做的目的是为了避免突然断电,所带来的数据丢失。

我这台机器原来正是做域控的,检查了一下,果然是写入缓存被禁用了。

设备管理器 ==> 磁盘驱动器 ==> 属性 ==> 策略

满心欢喜地勾上“启用磁盘上的写入缓存”,重启计算机,才发现这个选项又会被自动取消了,郁闷。

解决办法有两个,一是取消域控,在运行输入“dcpromo”,根据向导卸载DC。二是参考下面的一篇文章,在域控上启用写入缓存。http://www.cnblogs.com/jankie/archive/2012/03/15/2399439.html

由于不需要再做域控,于是我采用了第一种方式,圆满解决,系统的速度又恢复了。

 

 

网上下载的CHM文件经常遇到“此程序无法显示网页”的情况,之前一直以为是文件下载过程中数据丢失造成的,之后慢慢地都不敢再下载CHM文件了。直到前几天下了个不错的教程,重新下了好几次都没能看到内容,实在抓狂。本着死马当活马医的心态在google上一搜,才发现很多人都遇到过这个问题,各种各样的解决办法层出不穷。不过最有效的办法往往是最简单的: 选中CHM文件 -> 右键 -> 属性  -> 解除锁定。就是这样简单~

 

2012年1月12日讯,据悉,个人允许注册域名一直是域名界内最受关注话题,在第九届中国互联网络地址资源注册服务机构大会(CNNIC年会)上,CNNIC主任会上发言,2012年打破政策坚冰,推动开放个人注册CN域名。”

总有一群NC在那折腾,折腾来折腾去,把人折腾没了,等到没人气没钱了,又想把你哄回去。呸,哥还真不伺候了!!

 

本文转自酷壳网,原文地址: http://coolshell.cn/articles/5686.html

我在我的微博上说过这样一段话,我想在这里把我的这个观点阐述地更完整一些。

@左耳朵耗子:聪明的程序员使用50%-70%的时间用来思考,尝试和权衡各种设计和实现,而用30% – 50%的时间是在忙碌着编码,调试和测试。聪明的老板也会让团队这样做。而傻逼的老板,苦逼的程序员会拿出来100%-150%的时间来忙着赶进度,返工,重构,fix 大量的bug… 所以, 越差的团队一般会越忙,而且还忙不完。

在现在这个浮躁的时期,再加上敏捷咨询师们念的歪经,他们让人感觉上就像是软件产品是可以在很短的时间内高质量的完成的,这令那些管理者们很兴奋,就像巴甫洛夫的条件反射实验中的狗看到了肉就会流口水那样兴奋。他们使用TDD,快速迭代,不断重构,持续集成直至持续部署的方法在进行软件开发。

软件开发真是这样的吗?难道不需要花时间去思考吗?对此,有些观点在Todd的《“品质在于构建过程”吗?》以及《Bob大叔和Jim Coplien对TDD的论战》中谈到过了。我只想想表达下面的观点:

  • 软件的精髓在于设计,设计是一件很费大脑的事件。对于软件来说,设计没有完美的,它总是一件需要取舍需要权衡的事,比如:时间换空间,空间换时间,TCP或UDP,同步还是异步,数据冗余还不冗余等等。那怕是一个小小的observers模式是pull方式还是push方式 都需要仔细讨论。这些的东西需要时间和做前期尝试。
  • TDD快速原型和迭代可能会对软件和团队产生负面影响。在一开始,你需要花很大的精力来让你的软件从无到有(做过软件的人都知道,从零开始写代码是很痛苦的事),但是因为你没有想好,先做再说,所以,后期你会面临更多的质量问题而让你需要花更多的时间精力。当然,那些咨询师会让你用持续集成和持续部署这样的方法。但我想告诉你,这并不解决你软件设计的缺陷。举个例子——TDD、迭代、原型只关注功能性需求,其不会关注非功能性需求,比如性能问题,高可用性问题,系统维护问题(模块的耦合问题),等等。而这些问题往往都可以让你的软件设计重新来过。
  • 重构是恶梦,重构应该越少越好。当你维护一个复杂的系统时你会知道重构是一件多么恐怖的事情(参看《重构代码的7个阶段》)。如果一开始没有想好,你要面临的不单单是re-design, re-architect,还要面对时间和人力成本的增加,最难的是你还要面对的是团队士气因为不断的rework而逐渐低落并产生厌倦和懈怠情绪。

所以,如果你能有多一些时间去和客户讨论一下需求和未来可能的变化,去调查一下实现的技术难点和细节,去和其他有经验的人讨论并推敲一下架构和设计,去思考设计上的缺陷,那么,你的coding会变得非常地直,直到你一眼就看到尽头,你的测试案例也会写得非常地好,你会几乎不需要重构,于是,你会在未来少写很多代码,从而你的软件开发会越来越轻松,直到技术开始换代。

我现在在做的项目,花了几乎4个月的时间来做设计,在这个过程中,我们反复思考、讨论和权衡若干种实现方法,并尽可能地穷举所有的场景和细节以及未来可能的变化(那怕是那些简单的模块),有个模块被重写了至少三次,每次都是写到一半就被推翻重写,我们整个团队不断地在和其它团队讨论,并在对系统不断地认识中对系统进行简化和优化,并力求达到完美。现在看来,没有贸然使用Scrum是明智的。

这就好像我们修路造桥一样,我们需要花大量的时间勘测地形地质,分析数据,思考可能出现的各种问题(各种自然灾害),评估不同的设计方案,而不是先尽快建好再说。

所以,多一些时间,不是让你多做几次迭代,多完成几个模块,而是可以让你少写一些代码,更快的交付一个更好的产品

我相信你会有很多疑问,下面是我觉得你可能会有下面的一些观点,让我一条一条来回复:

  • 首当其冲的一定会是项目的deadline,或是那种你没有活语权的项目。比如做那种“甲乙方合同式的项目”,我把这种项目统一认为是“外包项目”,在这种项目性质下,你很难有话语权。对此,我觉得,1)作为乙方的你还是应该和甲方在项目计划上争取一下,晓之以情,动之以理。2)如果不行,只能在时间、需求范围和质量上做一个权衡。另外,在这种情况下你要找一个方法,把你的压力和痛苦分担给用户和领导。(找到这个方法的前提需要你找到用户和领导他们害怕什么,嘿嘿)
  • 过度设计和纸上谈兵。有人说会不会设计太多,造成过度设计,或是在设计上花太多的时间。这有可能。我上一家公司的一个项目团队就花了1年多的时间来不停不停的开会和做设计,结果release的时候还有1000多个bug。这个问题的原因是,这个团队的设计是在纸上谈兵,开会是开神仙会,讨论的设计都是浮云。所以,设计并不是讨论和思考,还需要去尝试,我认为当你的设计完成的时候,你的骨干核心代码都基本完成了。
  • 我的团队成员水平太差,不会思考。首先,先恭喜你找到一堆码农,当然,这不怪你,这是中国教育和大环境的问题,让人不会思考。对于这样的情况,我有两个建议,1)量力而行,使多大的碗就吃多少饭。2)鼓励思考,那怕那些想法很不靠谱,因为如果不开始,那么将永远不会思考。
  • 必需使用快速迭代。很多公司都在强行上敏捷,他们希望产品越快release越好,而没有充分的时间思考和讨论。对于这种项目,我的建议是,1)找有丰富经验的人来做。2)迭代过程中力求架构和程序逻辑的简单,简单,再简单,力求代码间的高内聚,低耦合。不然,重构的时候你就好玩了。
  • 创业团队必需要快。做得快就是做得好吗?很多时候,不是谁快谁就能笑到最后的。这样的例子太多了。第一个做出来的人并不一定就会占领市场,其很有可能会成为先驱。
  • 有钱的公司才会让团队用更多的时间去思考。错了,你们没有见过有钱的公司,有钱的公司可以招一堆干不成活的人,可以把事搞乱了再新来过,甚至可以把做失败的项目换个名字再重新立项。这些真正的有钱的公司只求快,只求人多,不怕做错决定。像我们这些没钱的人,干什么事都是小心翼翼地,生怕做错决定。

关于软件项目管理的文章,还可以参看《软件公司的两种管理方式》,最后,欢迎大家表达观点。

(全文完)

 

xp下安装了oracle 10g,每次启动服务的时候数据库也随着启动了,有时候会需要分步进行启动,即只启动系统服务,但是不启动数据库实例。

通过修改注册表的值 “HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE\ORA_XE_AUTOSTART” 为FALSE,重新启动服务即可。

 

今天在进行系统多组织设定时需要跑请求replicate seed data,但是在参数中却没有组织可选。网上找了一下原来11i并没有启用多组织功能,需要开启。判断你的ebs是否开启了多组织功能可通过sql查询:SELECT multi_org_flag FROM fnd_product_groups,N则没有开启。更改步骤如下:

1. 用mgr用户登录,关闭应用。

2. mgr用户执行adadmin,输入相应的参数。

3. 选择 4. Maintain Applications Database Entities menu,再选择 6. Convert to Multi-Org。已经开启多组织的是没有这个选项的。

4. 运行结束后退出adadmin,开启应用。

adadmin日志可在$APPL_TOP/admin/VIS/log/adamin.log,结束后可用上面的sql再查询确认。

 

由于公司不同网段的区分,导致互访很不方便。别的网段的用户要访问我们的服务器,通过端口映射是比较方便的方式。
PC A: eth0  10.10.1.11,  eth1 192.168.0.11
PC B:    eth1  192.168.0.20

要使访问A的10.10.1.11:8000端口能访问到B的8000端口,通过iptables就能简单实现。命令如下:

iptables -t nat -A PREROUTING -d 10.10.1.11 -p tcp --dport 8000 -j DNAT --to-destination 192.168.0.20:8000
iptables -t nat -A POSTROUTING -d 192.168.0.20 -p tcp --dport 8000 -j SNAT --to 192.168.0.11
iptables -A FORWARD -o eth1 -d 192.168.0.20 -p tcp --dport 8000 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.0.20 -p tcp --sport 8000 -j ACCEPT

其中前面两条是必须的,如果你的iptables还有其他规则,或者默认策略为drop,最好加上后面两条。
还有一个不得不改的地方是 /etc/sysctl.conf,将net.ipv4.ip_forward的值改为1。
为了使设置生效,可以使用 sysctl -p 命令刷新。有些教程说要重启系统才可以,其实就是没用这个命令。还有些教程说要修改 /proc/sys/net/ipv4/ip_forward,其实和sysctl -p的作用是一样的。

————————————华丽的分割线——————————————

除了用iptables外,还可以用软件rinetd。

rinetd的下载地址: http://www.boutell.com/rinetd/http/rinetd.tar.gz

下载之后解压:tar -zxvf rinetd.tar.gz,之后就是简单的make, make install。安装时会提示没有/usr/man/ 文件夹,手动创建一个再试即可。在centos5下编译会提示警告,可以无视。

编辑/etc/rinetd.conf,按如下格式添加
绑定地址 绑定端口 目的地址 目的端口
例如
10.10.1.11 8000 192.168.0.20 8000
如果要绑定主机上的所有IP,可以用0.0.0.0代替。
完成后启动rinetd。
rinetd -c /etc/rinetd.conf
关闭rinetd
pkill rinetd

 

今天ERP系统运行超慢,前几天才重启的系统,运行的反而比重启之前还慢了。磁盘IO高的离谱,一直在90%以上,不时飙到100%。请教高人,原来AIX 5 的lru_file_repage 参数默认是1,需要设置为0。简单说来这个参数是控制分页替换策略的,在大多数环境下,计算性分页的使用率更高,所以要尽量保留在内存中,设置为0也就更加合理。在AIX6中这个参数的默认值已经是0。

还有几个参数maxperm%、minperm%、maxclient%也值得关注。

PS:查看磁盘IO情况可以用filemon -o /tmp/filemon.out -O all 输出到/tmp/filemon.out,用trcstop停掉

深入学习:AIX 分页替换技术入门

 

今天安装了个测试环境,将数据库的数据导了过来,再导出的时候提示错误。

#mysqldump -uroot -p testdb > test.sql

mysqldump: Got error: 1449: The user specified as a definer (‘xxx’@'xxxxxx’) does not exist when using LOCK TABLES

xxx用户是在正式环境建立的用户,但是我是整个数据库备份的,用户和权限应该也会导入才对。查看user表也确实存在此用户。从网上看的资料解决备份是给这个用户增加权限。登入Mysql

mysql> grant all privileges on testdb.* to xxx@’xxxxxx’ identified by ’123456′;

再次导出,成功。

但是将导出的文件导入一个新的数据库,再导出的话还是会出现这个问题,总不能每次都要建立这个个没有用的用户吧。

最后的解决办法是编辑导出的备份文件,将xxx@xxxxxx都改成root@localhost,重新导入就没问题。

 

今天新员工来报到,才想起来自己已经工作了整整一年了。一年的时间,说长不长, 说短不短。这一年里,又一次面临技术转型,从开发变成了维护,代码越写越少,命令是越敲越多。床头书也从Java变成了oracle。

虽然一切要从头开始,不过这也算是机遇吧,毕竟每天都能接触到很多问题,能学到多少就要看自己的努力了。

© 2012 一起去看海 Suffusion theme by Sayontan Sinha