摘要: 1.度量性能 持续地对性能进行度量在两个方面有帮助。首先,度量可以帮助了解性能趋势,包括好坏两方面的趋势。作为一个简单的方法,查看一下 Web 服务器上的中央处理单元(CPU)使用率,就可以了解 CPU 是否负载过重。同样,查看过去使用的总带宽并推断未来的变化,可以帮助判断什么时候需要进行网络升级。这些度量最好与其他度量和观测结合考虑。例如,当用户抱怨应用程序太慢时,可以检查磁盘操作是否达到了最大容量。 性能度量的第二个用途是,判断调优是对系统性能有帮助,还是使它更糟糕了。方法是比较修改之前和之后的度量结果。但是,为了进行有效的比较,每次应该只修改一个设置,然后对适当的指标进行比较以判... 阅读全文
posted @ 2013-02-20 17:50 风去无痕 阅读(1260) 评论(0) 推荐(0) 编辑
摘要: 获取2个用户之间的共同好友:redis 127.0.0.1:6379> sadd myset:1000 1001redis 127.0.0.1:6379> sadd myset:1000 1002redis 127.0.0.1:6379> sadd myset:1000 1003redis 127.0.0.1:6379> sadd myset:1000 1004redis 127.0.0.1:6379> sadd myset:1000 1005redis 127.0.0.1:6379> sadd myset:1001 1003redis 127.0.0.1: 阅读全文
posted @ 2013-01-24 10:55 风去无痕 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 1 Nginx rewrite基本语法Nginx的rewrite语法其实很简单.用到的指令无非是这几个setifreturnbreakrewrite麻雀虽小,可御可萝五脏俱全.只是简单的几个指令却可以做出绝对不输apache的简单灵活的配置.1.setset主要是用来设置变量用的,没什么特别的2.ifif主要用来判断一些在rewrite语句中无法直接匹配的条件,比如检测文件存在与否,http header,cookie等,用法: if(条件) {…}- 当if表达式中的条件为true,则执行if块中的语句- 当表达式只是一个变量时,如果值为空或者任何以0开头的字符串都会当作false- 直接比 阅读全文
posted @ 2013-01-21 18:10 风去无痕 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 在php中变量类型和值是通过c语言实现的,那php内核具体是怎么实现的呢?HashTable在php内核中广泛被使用,而变量就是存储在hashtable实现的符号表中.当在PHP中调用一个函数或者类时,内核会创建一个新的符号表,这也是为什么在函数中无法使用函数外部定义的变量的原因。(因为他们分属两个符号表,一个当前作用域,一个全局作用域)内核中作用域的定义,PHP的所有 局部变量,全局变量,函数,类的 Hash表 都在这里定义了struct _zend_executor_globals {zval **return_value_ptr_ptr; zval uninitialized_zval; 阅读全文
posted @ 2013-01-19 16:22 风去无痕 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 生成静态库的makefile:C = g++ AR = arCFLAGS = -D_REENTRANT -g -D_GNU_SOURCECOM_LIBS = -L/usr/local/lib/ -lpthread -lzINCPATH = -I/opt/mmseg/include/mmsegHALO_INCS = -I../HaloLibOBJ = HaloSegmenter.oSRC = ./HaloSegmenter.cppOBJECT = HaloSegmenter.aall:$(OBJECT)$(OBJ):$(SRC)$(CC) $(CFLAGS) $(COM_LIBS) $(HALO 阅读全文
posted @ 2013-01-16 15:39 风去无痕 阅读(1872) 评论(0) 推荐(0) 编辑
摘要: 有一个日志文件access.log ,日志文件的格式:127.0.0.1 - - [11/Jan/2013:15:26:19 +0800] "GET / HTTP/1.1" 403 202用shell命令,计算出文件中每个ip访问的记录数 : cat access.log | awk -F " " '{print $1}' | sort -rn | uniq -c一、Sort命令sort [OPTION]… [FILE]…对文件按指定的域进行排序常用选项:-c: 检测文件是否已经排序-m: 将两个已经排序的文件进行合并-u: 在排序过程中 阅读全文
posted @ 2013-01-13 19:59 风去无痕 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 在linux系统上,要实现任务调度功能,可以使用crontab脚本实现。crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。cron的调度文件有以下几个:crontabcron.dcron.dailycron.hourlycron.monthlycron.weekly如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab 或cron.d目录中。启动cron进程的方法:/etc/init.d/crond startcrontab 格式:* * * * * cmd分钟 小时 ... 阅读全文
posted @ 2013-01-11 10:22 风去无痕 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 在开启了防火墙时,做如下设置,开启相关端口修改/etc/sysconfig/iptables 文件,添加以下内容:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条。-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT就可以了,其中 80 是要开放的端口号,然后重新启动li 阅读全文
posted @ 2012-12-18 11:31 风去无痕 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1. 函数指针定义函数类型 (*指针变量名)(行参列表);"函数类型"说明时函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如: int (*f)(int x); double (*ptr)(double x);在定义函数指针的时候注意:函数指针和它指向的函数的参数个数和类型都应该是一致的。函数指针的类型和函数的返回值的类型也必须是一致的。2.函数指针的赋值:函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名即可.例如 :int func(int x); 阅读全文
posted @ 2012-11-30 18:06 风去无痕 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 对于web server来说,必须能够监听到客户端的连接才能与之通信,这篇文章就看一下nginx是如何实现连接的建立。监听到新的连接实际上就是监听socket上的读事件,此时监听socket的已完成连接队列是非空的,可以非阻塞的调用accpet获取新到的连接。在nginx中每个socket都会被封装成一个连接结构,就是ngx_connection_t类型。每个ngx_connection_t结构具有读写事件read和write,它们是ngx_event_t类型的,有一个handler回调函数指针,在发生读写事件时被调用。在ngx_event_process_init函数中为每个监听sock.. 阅读全文
posted @ 2012-11-29 20:01 风去无痕 阅读(3128) 评论(0) 推荐(0) 编辑