Sybase ASE数据库缓存问题

<!--[if !supportLists]-->1.场景描述

35分左右,统一办公门户应用系统出现登陆、业务响应缓慢的情况。

I/O Busy 80.3 % <!--[if !supportLists]-->2.问题结论

       通过对数据库的缓存、存储盘阵分析,结论如下:

23日数据库实施定期双机演练的重启维护后,协同应用系统的p_getallinfo的查询计划被ase数据库重新生成,新的查询计划中,p_getallinfo未使用合适的数据库缓存策略——协同应用属于OLTP类型的应用,本应使用大小为38GB4KB页的缓冲池很快被用尽,新访问的数据又要从后端存储调入缓冲池,因此,大量数据在缓冲池和后端存储之间不断流动,2800,吞度量达到245MByte/s组的磁盘使用率非常高,均在96%-98%左右,远高于阀值值70% <!--[if !supportLists]-->3.分析过程

»阅读全文

Tags: sybase ASE

优雅地使用CodeIgniter 3之Session类库(2)

CI3的Session的重大改变就是默认使用了原生的Session,这符合Session类库本来的意思,似乎更加合理一些。总体来说,虽然设计理念不同,但为了保证向后兼容性,类库的使用方法与CI2.0的差别不是很大。一般的使用过程是这样的:

»阅读全文

优雅地使用CodeIgniter 3之Session类库(1)

相信无数人在使用CI2的Session类库时,遇到各种的坑,各种抱怨,各种不解。在CI中国论坛能搜到大量关于Session类库的提问,说明要想用好session类库还是得下一番功夫。本文将先从CI2入手,讲述CI下Session类库的设计理念和在CI3下的Session类库做了哪些重大改进。首先在这里简单说明一下Session和cookie的区别。

Session和cookie的区别

1.在某些语境中,cookie是session的一种实现方式,Ci的类库设计似乎就这么认为的。设想用户登录后使用Session保存数据的一种情景。用户输入密码和口令发送到服务器后,php就会在服务器端生成一个php sessionid和一个具体的数据包放到一个文件中,并存放到指定的文件夹下(如果session.save_handler=files),然后会把sessionId作为一个cookie放到响应中返回给客户端(前提是用户浏览器开启了cookie,否则会加入到url地址的查询字符串中)。用户再次访问服务器上的其他页面时,会把这个phpsessionid的cookie携带上作为请求的一部分发送给服务器,服务器就能根据session id到保存session的文件夹下找到特定的文件,读取其中的数据。

»阅读全文

codeigniter在nginx下的url规则导致404错误

很早期写的一个CI页面,CI的版本还在1.7几,当然代码写的也有点乱。在apache下部署没什么问题,后来部署到阿里云的服务器上,就出现了404错误。阿里云环境是: ngnix + php + mysql + CentOS。

对于/index.php/abc这种url,Apache和lighttpd会按”index.php?abc”来解释,而nginx会认为是请求名字是“index.php”的目录下的abc文件的内容。所以CI在nginx下不配置rewrite是无法运行的,而在Apache和lighttpd则正常。

»阅读全文

在CodeIgniter中使用微信开发类库

在CI中国论坛里,Hex老大很早就写了一个微信开发的类库,原文地址:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=16665

这个类库很简洁,符合CI开发模式,不过功能过于简单,所以要使用一些高级的微信开发接口,推荐使用这个比较收欢迎的微信开发类库: https://github.com/dodgepudding/wechat-php-sdk

不过这个类库不是CI的,需要封装一下,下面讲讲我的封装,封装的有点过度,你可以按照自己的意愿稍加改造。

1.首先git clone https://github.com/dodgepudding/wechat-php-sdk.git 源代码wechat.php,放到CI的library文件夹下;

»阅读全文

CI的captcha替代类库

CI的captcha使用起来不是特别好用,可以用这个替代类库:

»阅读全文

CI的CSRF防范原理及注意事项

首先我们谈谈什么是CSRF,它就是Cross-Site Request Forgery跨站请求伪造的简称。很多开发者甚至不够重视这个问题,认为这不是安全漏洞,而不过是恶意访问而已,它的攻击原理我在这里简单地描述一下:

有一天你打开你简单优雅逼格十足的谷歌浏览器,首先打开了一个tab页,登录并访问了你的微博首页。我们这里假设weibo.cn有这样一个网址: http://www.weibo.cn?follow_uid=123 ,意思是关注id为123的一个用户。这是一个正常的地址,访问也没有问题。
紧接着你的QQ群里发来了一个让你感到好奇的链接,http://www.comeonbaby.com, 你禁不住诱惑打开了这个链接,并在浏览器里的另一个tab页里显示出来。紧接着,你打开你的微博tab页,发现无故关注了一个新的用户。咦,这是为何?

»阅读全文

即时语音问答服务平台

我在实现网发布的一个项目:http://shixian.com/projects/1832

生活中常常遇到各种各样的问题,大多时候可以在互联网上找到答案,但你总是在寻找的过程中遇到各种各样的问题:
1. 你需要付出很多的精力才能找到你需要的准确答案,比如,辞职后我的五险一金断交后会有哪些问题。
2. 你没有太多时间去寻找答案,比如,你身处某地,马上要找一个比较偏僻的地方,还比如,你想路过去天坛医院,又不知道它春季下班的时间是几点。

有些问题你是无法在互联网找到准确答案的,有时候它们不是知识,而是资讯,有时效性。这时候,你需要一种准确的、即时的回答。相信有很多人在网上找到过错误的、失效的信息,导致你坐车坐错、办事不顺、根本不是那么回事……

但这种平台的建立实在很困难,不能迅速积累人气就玩不下去了,平台基本是死的。所以我的想法是用微信,微信的圈子足够大,只要运营推广的好,再加上社交功能,成功的可能性比较大。

整个服务平台的定位是:

»阅读全文

使用rem设置字体大小的优劣

随着响应式设计的理念深入人心,在各个不同终端下显示最佳效果得到重视。在设置字体时,向来使用px或者em,px是绝对值,em是相对值。em的相对值是相对其父元素。如果ul下有li设置为font-size:1.4em;则li的字体可不一定是14px。

body {
    font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/
}
h1 {
 font-size: 2.4em; /*2.4em × 10 = 24px */
}
p{
 font-size: 1.4em; /*1.4em × 10 = 14px */
}
li {
 font-size: 1.4em; /*1.4 × ? = 14px ? */
}

»阅读全文

在CI中加入辨识微信客户端的user agent

在CI中,可以载入user_agent类库,使用此类库判断客户端的浏览器版本、手机型号或者是操作系统等。具体可用如:

$this->load->library('user_agent');
$this->agent->is_mobile();

如果你正在使用CI开发微信接口API,可能需要判断是否是来自微信客户端的请求。

<?php
echo $_SERVER["HTTP_USER_AGENT"];
?>

在iPhone下,返回

»阅读全文