首页 | 摘要显示 | 上一页 1 2 3 4 5 6 7 8 9 10 11 下一页

Developer Archives

January 23, 2008

了解了一下Memcached

    Cache从来都是一种主要的优化手段, 从Oracle的角度, Cache技术无所不在.

  1. Library Cache
  2. Cursor Cache
  3. Data Cache
  4. Connection Cache / Pool
  5. Query Cache
  6. Client Data Cache

    除了这些Cache上, 在应用程序上也可以加上Cache层, 现在WEB上最热门的Cache软件就是memcached了, 和程序中的数组不同, 它采用服务器客户端方式, 因此可以更好地被很多程序共享, 其基本工作原理如下.

  1. 连接到memcached服务器.
  2. 根据自定义的key进行查找值,如果找到则返回.
  3. 从磁盘中读取或从数据库中查询数据.
  4. 写入到memcached服务器.
  5. 返回结果值.

    想想自已的Blog有两个地方可以用上memcached这个服务, 一个是留言时的验证码, 现在是Cache在磁盘中的, 有待改进. 另一个是基于tag搜索的结果页面, 也是Cache在磁盘中的, 可以改进, 不过在DreamHost中并不能用上这个服务.

February 29, 2008

向Zizzy项目注入MyLOG

    开源项目网(SourceForge)上出现了一个名为Zizzy的项目, 指在挑战Quest公司的拳头产品ShareplexGoldenGate, 打造免费的基于日志的Oracle复制软件, 我开始研究Oracle日志格式时, 也定的这个目标, 可惜失败了. 是从Jonah Harris主管的Oracle Internals网站得到这个项目信息的. 现在这个项目中还没有任何代码或文档可以看, 而本人的MyLOG则已经可以解出SQL语句了, 只是凭着我一个人, 无法再研究下去了而已, 而我也很难找到志同道合者并有空余时间和精力继续下去, 早就有开源的想法了.

    只要有人真的愿意好好做下去, 我还是愿意贡献我的代码的, 毕竟我的研究结果放着也就放着, 何不让出去呢? 不为利, 博个名吧.

    目前还没有贡献出去, 还需要对这个项目的发起人, 及现在的人员作个调查再说. 交给别人去管, 自已有空时做个研究者, 也是一种乐趣.

May 3, 2008

AIX下C语言取得Load值

    在AIX下可以用libperfstat包来方便地取得Load Average的三个值.

#include <stdio.h>
#include <sys/time.h>
#include <sys/proc.h>
#include <libperfstat.h>

int main(int argc, char *argv[])
{
  perfstat_cpu_total_t cpu_total_buffer;
  perfstat_cpu_total(NULL, &cpu_total_buffer,
          sizeof(perfstat_cpu_total_t), 1);
  while(1 == 1)
  {
    sleep(10);
    perfstat_cpu_total(NULL, &cpu_total_buffer,
        sizeof(perfstat_cpu_total_t), 1);
    printf("%5.2f,%5.2f,%5.2f\n",
        1.0*cpu_total_buffer.loadavg[0]/(1<< SBITS),
  1.0*cpu_total_buffer.loadavg[1]/(1<< SBITS),
        1.0*cpu_total_buffer.loadavg[2]/(1<< SBITS));
  }
}

    在编译时用如下选项:

gcc -l perfstat ...

    在Google中找一下libperfstat, 可以找到更多的资料.

June 19, 2008

整合Apache和Tomcat

    先下载mod_jk模块, 放到apache的modules目录下. 然后创建一个mod_jk.conf文件.

LoadModule jk_module modules/mod_jk.so
JkWorkersFile $TOMCAT_HOME/conf/workers.properties
JkLogFile $TOMCAT_HOME/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkMount /webchart/* worker1

    创建上面提到的workers.properties文件, 内容如下所示.

workers.tomcat_home=$TOMCAT_HOME
workers.java_home=$JAVA_HOME
ps=/
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

    再启动Tomcat.

export JAVA_OPTS=-Djava.awt.headless=true
./startup.sh

    在Apache的配置文件中, 加入mod_jk.conf文件.

include "/path/mod_jk.conf"

    再重启一下Apache就好了.

July 11, 2008

用C取得Linux负荷值?

    oramon程序可以记录Oracle数据库的很多运行特征, 但还是需要记录一些OS级别的值, 最想要的是Load Average的三个值了, 另外还有CPU的利用率了. 在Solaris下可以用kstat库来取得这些值, 在AIX下可以用perfstat库的函数, 来搞定这些值. 但是在Linux上, 虽然说它是开源的, 但却没有搞定这几个值如何用C程序取出来的.

    用了最土的方法, 现在用的Linux基本上都是Kernel 2.4以上的了, 取得Load Average的话, 就直接访问"/proc/loadavg"算了.

float getloadavg1m()
{
  FILE *fp=NULL;
  char tmpbuf[128];

  if ((fp=fopen("/proc/loadavg","r"))!=NULL)
  {
      fscanf(fp,"%s",tempbuf);
      fclose(fp);
      return atof(tempbuf);
  }
  return 0f;
}

    这种打开文件的方法, 绝对算是很土, 但是运行还是很稳定, 每隔十秒钟打开一次应当问题不大. 只是取CPU的利用率, 就搞不定了, 谁能介绍更好的方法?

上一页 1 2 3 4 5 6 7 8 9 10 11 下一页

当前分类: Developer

Creative Commons License
本站版权: 共用创作 CC
署名-非商业性-相同方式分享
本站基于MT-3.36免费版
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql