04 2012 档案
摘要:web账户的口令不能直接明文存储,这样太不安全了,需要加密存储。存储策略—— 基于安全哈希算法加密存储用户的口令 估计基于安全哈希算法的存储方式应该已经广泛使用了,不过奇怪的是网上难以找到相关应用的详细资料。哈希算法可用于保障信息的完整性、抗抵赖性, 属于单向算法,即便哈希的结果被截获,对方也是无法还原出明文的。如果在哈希的过程中加入盐值,那就更好了,可以起到混淆的作用。盐值这个概念找不到定义,大概是指用户间相互不同的信息,常见的用户名、用户邮箱、账号注册时间等。 类似地,选择基于哈希的消息认证码(HMAC)也可用于身份认证,安全性更强,如果各位对单纯的hash不放心,可以使用HMAC...
阅读全文
摘要:项目中的数据量有点大,最核心的一张表会有TB数量级的数据,因而也需要建这么大的表空间,如何处理这么大的表空间是个难题。 询问了几位专家,也查了网络上的资料,得到了一个大致的解决方法:设置多个数据文件。具体做法如下:为此表空间划分单独的LUN,保证足够的空间,我这里就划分1TB;在此LUN上建立表空间,考虑到系统的数据是慢慢累积的,刚开始不用一次把空间都分配满,可先设置10个24GB的数据文件,这样就分配到了240GB的空间可以存储数据;等数据量上来后,可选择扩展原有的数据文件,或新加数据文件,以此扩展表空间。 上述方法还没实践过,有待验证。这里也先整理下设置多个数据文件的好处:有些操作...
阅读全文
摘要:1.背景 项目已经进行了一段时间,系统业务流程、架构基本稳定,核心业务已经可以运作了,功能测试已经比较充分了,但系统的运维配套还没跟上。在这种情况下,进行了第一次性能测试。我觉得没必要对压力测试、负载测试等概念做细分了。2.准备工作 测试之前,必须给个规划:(1)测试目的,第一次性能测试,目标不应该太高,了解系统性能概况,发现和解决大数据高并发下的代码级别的Bug(2)数据模型,估算实际环境的数据量,并发数,制定一个大概的目标数据(3)测试场景,不用多说,以主业务为测试场景,测之前至少把业务流程熟悉下(4)环境配置,测试环境不比生产环境,可能缺各种硬件资源,需尽量减少环境对测试结果有效性的..
阅读全文
摘要:一副图胜过千言万语再来一副图
阅读全文
摘要:JDK自带了一堆JVM的监控工具很多都不错。不过有一套组合工具我觉得比较坑爹的,那就是jmap+jhat。 jmap可以对JVM内存做一个快照,然后jhat可以对快照进行分析,且自带了一个小的httpserver,可通过web方式访问内存分析结果,这对于分析内存中类的装载情况,特别是内存泄露还是比较有帮助的。 但这套工具还是经不住大场面,有次有个4G的内存快照分析,jhat让我无语了。用jhat分析这4G的快照,在32位操作系统下,那直接就out of memory,那也没话讲。换了台64位的服务器,还是out of memory依旧,关键是有时候运行了快大半小时了才报错,郁闷啊。后来...
阅读全文
摘要:网上也有不少资料提到了作为接口测试工具的soapUI也可以做性能测试。的确如此,soapUI可以模拟多个请求并发,用过循环反复执行,达到了给系统压力传递的目的。不过比起传统的性能测试工具,还是有天然的不足,最明显的就是对于性能测试结果,必须手工做统计。这还是可以克服的,一般比较关注的请求相应时间,可以通过程序中记录请求发出时间和收到相应时间做统计,然后还可以算出系统的吞吐量。还有一个不太好的,就是难以精确控制请求的并发数,像其他性能测试软件,可以精确地控制每秒发出的请求数,而soapUI这点是难以做到的,幸好有时候这并不是非常重要。 可以说,对测试程序做一系列的加工后,soapUI还是...
阅读全文
摘要:本文算是对最近遇到的软件可靠性问题的一个小结,从非功能层面考虑。市面上好像还没有一本关于软件可靠性方面的权威书籍,所以不知写的是否准确详尽。1. 冗余 系统中的任何部分都需要有冗余,即不存在单点故障,网络链路、服务器主机,再到软件层面的各功能模块,都应具有冗余,保证在系统中出现一个故障点后,可以马上切换到另一处完成任务。现在互联网的数据量大,并发高,一般都会采用负载均衡集群的策略,要做好系统监控检查,笨点的就是ping,另外可通过应用层面去检查。还有就是双机热备的策略,好像一些商用软件这样会比较省license费用。系统再大一点,或许还要考虑异地容灾。 这些应该都是在系统设计、组网层面的,..
阅读全文