首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用G servlet内部缓存?

如何禁用G servlet内部缓存?
EN

Stack Overflow用户
提问于 2012-12-27 16:49:57
回答 1查看 522关注 0票数 1

gwan版本: 3.12.26

servlet类型:C和Perl

问题:

gwan内部缓存使请求不重新读取脚本。

测试:

  1. 创建“log”dir: bash# mkdir -p /dev/shm/ bash# -c chmod 777 /dev/shm/随机-c
  2. 创建/path/to/gwan/0.0.0.0_8080/#0.0.0.0/csp/random.c // ============================================================================ // C示例用于(http://trustleap.ch/) // // hello.c:仅与with的Weighttp一起使用以对极简servlet进行基准测试// ============================================================================ //导入函数: // get_reply():从服务器// xbuf_cat():像strcat()一样获取'reply‘动态缓冲区的指针但是它在指定的动态缓冲区// #include #include "gwan.h“// gwan.h导出函数#include #include 中工作。#包括 ///*sys/time.h->*/gettimeofday(&res,NULL);/*stdlib.h->*/srand( (无符号int)/*stdlib.h->*/time(NULL) + res.tv_usec);}//char *ret = (char *)/*stdlib.h->*/malloc((num * sizeof(char)) + 1);int i,r;for(i=0;i*/rand() % char_list_len);reti = char_listr==char_list_len?r-1 : r;} retnum = '\0';返回ret;}////-为了速度,让我们在ramdisk /dev/shm/随机-c/ char *t;FILE *F;int num_char=10;int arg_cnt=1;if(argc>0){ //-为什么没有人喜欢C?原因之一是(t=/*string.h.h->*/strtok( argv,“=”) != NULL) {argv= NULL;if(arg_cnt == 2){ num_char = /*stdlib.h->*/atoi(t);} arg_cnt++;}{//-在1到1000 num_char = (rand() %1000)+1之前获得随机数;} init_random();//-创建随机数据rnd_out = get_rnd_char(num_char);//-创建"log“路径/-为什么没有人喜欢C?rnd_file = get_rnd_char(20);//“/dev/shm/ -> -c/”-> 38 chars +1“->38 chars+1 for \0 rnd_path = (char *)/*stdlib.h->*/malloc(38*sizeof(Char)+ 1);rnd_path =‘0’;rnd_path=‘0’;**->-**/strcat(rnd_path,”/*stra.h->*/strcat(rnd_path,rnd_file);//-保存到文件F= /*stdio.h->*/fopen(rnd_path,"w");/*stdio.h->*/fprintf(F,"%s",rnd_out);/*stdio.h->*/fclose(F);//-将输出发送到browser /*gwan.h->*/xbuf_cat(get_reply(argv),rnd_out);//-清理内存/-为什么没有人喜欢C?主要原因:内存管理/*stdlib.h->*/free(rnd_file);/*stdlib.h->*/free(rnd_out);/*stdlib.h->*/free(rnd_path);返回200;//返回HTTP代码(200:'OK') } //
  3. 在浏览器上运行: http://localhost:8080/?random.c 然后,您应该有一个20 20char随机文件在/dev/shm/随机-c/
  4. 在这里,‘问题’,运行: ab -n 1000 'http://localhost:8080/?random.c‘ 我的ubuntu有输出: 完成1000次请求服务器软件::localhost服务器端口: 8080文档路径: /?random.c文档长度: 440字节并发级别:1测试时间: 0.368秒完成请求:1000个请求失败: 361 (连接: 0,接收: 0,长度: 361,例外: 0)写入错误:0总计传输: 556492字节HTML传输:每秒286575字节请求:每请求2718.73 #/秒时间:每次请求0.368 女士时间: 0.368 女士传输速率: 1477.49千字节/秒 尝试: bash# ls /dev/shm/随机-c/ 该目录仅列出4个或5个随机文件,预期为1000个文件。
  5. 在随机.c和perl的版本random.pl上进行测试

所以回到开始的问题,如何禁用GWAN内部缓存,我试着阅读gwan用户指南来设置在处理程序中的东西,但是没有发现任何东西(或者我在指南中遗漏了什么)。

感谢GWAN团队的这一伟大的产品。任何回答欢迎..。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-27 17:34:57

我认为您正在讨论的特性是微缓存。要禁用它,URI需要在200 ms内对每个请求都是唯一的。(比如在URI上添加随机数)

广域网常见问题状态:

“为了避免对前端缓存服务器的需求(并允许G用作缓存反向代理),G支持微缓存,这是一种RESTful特性。当在高并发环境下调用给定的URI,生成有效负载需要很长时间,则given将自动缓存一个页面200毫秒(因特网上的平均延迟),以确保缓存是最新的:在200 ms内,连续请求提供预期的结果。若要防止触发微缓存,请使用更改的查询参数(每个用户会话id、随机、计数器等)。用于并发请求。“

注意,对于默认情况下禁用v4.10+缓存,请查看gwan/init.c文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14058150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档