自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

上善若水,水善利万物而不争。

>>专注软件测试技术与质量管理,致力于软件自动化测试技术★性能测试技术★移动互联网★软件质量管理与过程改进。

  • 博客(445)
  • 资源 (10)
  • 收藏
  • 关注

转载 Memcache(MC)系列(八)Memcache ketama一致性哈希算法

一、概述     memcached 尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached 不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。最常见的分布算法有余数分布算法(结构简单,增减服务节点时对命中率影响相对较大)与一致哈希算法(算法相对复杂,使用虚拟节点,使缓存分布更加均匀,增减服务器节点对缓存命中率影响相对较小),各有利弊。      h

2015-06-17 14:28:17 3374

原创 Memcache(MC)系列(七)Memcache stats命令

Memcached的stats命令 telnet到memcached服务器后有很多的命令可以使用,除了大家熟知的add、get、set、incr、decr、replace、delete等赋值命令外,还有一系列的获取服务器信息的命令,这部分命令都是以stats开头的。用PHP的Memcache::getStats($cmd)也可以访问这些命令常用的命令stats显示服务器信息、统计数据等stats

2015-06-16 21:16:43 6986

转载 Memcache(MC)系列(六)Memcache内存分配策略

一、Memcache内存分配机制        关于这个机制网上有很多解释的,我个人的总结如下。Page为内存分配的最小单位。Memcached的内存分配以page为单位,默认情况下一个page是1M,可以通过-I参数在启动时指定。如果需要申请内存时,memcached会划分出一个新的page并分配给需要的slab区域。page一旦被分配在重启前不会被回收或者重新分配(page ressign已经

2015-06-16 21:11:57 2704

原创 Memcache(MC)系列(五)使用memcache-top监控memcache集群状态

是不是想要一个类似top的命令来显示memcache的状态,以便对memcache进行直观的分析,相信memcahce top可以满足你的要求。memcache-top的project地址如下:http://code.google.com/p/memcache-top/下载后只有一个文件,可以vi打开它并进行memcached集群配置,多个节点之间以逗号分隔,这样就可以一次性看到所有集群的memc

2015-06-16 21:10:34 3146 2

原创 Memcache(MC)系列(四)度量Memcached性能

检测命中率是一个最基本的、最宏观的方式,使用telnet连接到memcached服务器,然后执行stats命令就可以看到宏观的一些信息。        这个命令中比较关键的属性是get_hits和get_misses,get_hits表示读取cache命中的次数,get_misses是读取失败的次数,即尝试读取不存在的缓存数据。         命中率=get_hits / (get_hits +

2015-06-16 21:07:41 4069

原创 Java如何对HashMap按值进行排序

HashMap的值是没有顺序的,它是按照key的HashCode来实现的。对于这个无序的HashMap我们要怎么来实现排序呢?(TreeMap类似)import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.ut

2015-06-16 19:54:56 43138 3

原创 HTTP协议之响应头Date与Age

HTTP没有为用户提供一种手段来区分响应是缓存命中的,还是访问原始服务器得到的。客户端有一种方法能判断响应是否来自缓存,就是使用Date首部。将响应中Date首部的值与当前时间进行比较,如果响应中的日期值比较早,客户端通常就可以认为是来自缓存的;客户端也可以通过Age首部来检测缓存的响应,通过这个首部可以分辨出这条响应的使用期。否则,则认为是来自原始服务器中的。      Date:Date头域表

2015-06-11 18:27:29 33305 1

原创 HTTP协议之chunk编码(分块传输编码)

分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。通常,HTTP应答消息中发送的数据是整个发送的,Content-Length消息头字段表示数据的长度。数据的长度很重要,因为客户端需

2015-06-11 14:26:32 58850 1

原创 《高性能MySQL》读书笔记--优化服务器设置

MySQL有大量可以修改的参数--但不应该随便去修改。通常只需要把基本的项配置正确(大部分情况下只有很少一些参数是真正重要的),应该将更多的时间花在schema的优化、索引,以及查询设计上。在正确地配置了MySQL的基本配置项之后,再花力气去修改其它配置项的收益通常就比较小了。1.创建MySQL配置文件建议不要使用操作系统的安装包自带的配置文件,最好从头开始创建一个配置文件。(首先要确定MySQL

2015-05-14 00:20:34 5762

原创 《高性能MySQL》读书笔记--查询性能优化

对于高性能数据库操作,只靠设计最优的库表结构、建立最好的索引是不够的,还需要合理的设计查询。如果查询写得很糟糕,即使库表结构再合理、索引再合适,也无法实现高性能。查询优化、索引优化、库表结构优化需要齐头并进,一个不落。6.1 为什么查询速度会慢通常来说,查询的生命周期大致可以按照顺序来看:从客户端>>服务器>>在服务器上进行解析>>生成执行计划>>执行>>返回结果给客户端。其中执行可以认为是整个生

2015-05-09 20:34:32 12912 3

原创 《高性能MySQL》读书笔记--MySQL逻辑架构

一、MySQL最重要的、最与从不同的特性是它的存储引擎架构,这种构架的设计将查询处理及其它系统任务和数据的存储/提取相分离。第一层,服务层,最上层的服务并不是MySQL独有的,大多数基于网络的客户端/服务端的工具或者服务都有类似的架构。主要为请求做连接处理,授权认证,安全等。第二层,核心层,大多数MySQL的核心服务功能都在这一层,包括查询解析,分析,优化,缓存,以及所有的内置函数(例如日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程,触发器,视图等。

2015-05-04 13:05:57 4095 2

原创 《高性能MySQL》读书笔记--查询缓存

很多数据库产品都能够缓存查询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划生成阶段。MySQL还有另一种不同的缓存类型:缓存完整的SELECT查询结果,也就是“查询缓存”。查询缓存系统会跟踪查询中涉及的每个表,如果这些表发生变化,那么和这个表相关的所有的缓存数据都将失效。查询缓存对应用程序是完全透明的。应用程序无须关心MySQL是通过查询缓存返回的结果还是实际执行返回的结果。另外,随着现在的通用服务器越来越强大,查询缓存可能是一个影响服务器扩展性的因素。它可能成为整个服务器的资源竞争单

2015-04-28 23:51:36 4133

原创 《高性能MySQL》读书笔记--Schema与数据类型优化

1.慢查询当一个资源变得效率低下的时候,应该了解一下为什么会这样。有如下可能原因:1.资源被过度使用,余量已经不足以正常工作。2.资源没有被正确配置3.资源已经损坏或者失灵因为慢查询,太多查询的实践过长而导致堆积在逻辑上。慢查询到底是原因还是结果?在深入调查前是无法知晓的。记住,在正常的时候这个查询也是正常运行的。一个查询需要filesort和创建临时表并不一定意味着就是有问题的。尽管消除file

2015-04-26 11:37:49 3751 1

原创 《高性能MySQL》读书笔记--多版本并发控制算法

1.AUTOCOMMITMysql采用默认自动提交,可以通过如下命令查看和修改:mysql> SHOW VARIABLES LIKE 'AUTOCOMMIT';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+------...

2015-04-25 22:45:21 9297

原创 《高性能MySQL》读书笔记--锁、事务、隔离级别

1.锁为什么需要锁?因为数据库要解决并发控制问题。在同一时刻,可能会有多个客户端对表中同一行记录进行操作,比如有的在读取该行数据,其他的尝试去删除它。为了保证数据的一致性,数据库就要对这种并发操作进行控制,因此就有了锁的概念。1.1锁的分类从对数据操作的类型(读\写)分读锁(共享锁):针对同一块数据,多个读操作可以同时进行而不会互相影响。写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁...

2015-04-25 22:15:31 6555

原创 TCP--RST复位攻击

1.RST标识位RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去(FIN包),直接就丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。TCP处理程序会在自己认为的异常时刻发送RST包。2个例子:1)A向B发起连接,但B之上并未监听相应的端口,这时B操作系统上的TCP处理程序会发RST包。2)A和B已经正

2015-03-28 18:37:52 9256

原创 TCP--SYN洪水攻击

在查看TCP标识位SYN时,顺便关注了一下SYN Flood,从网上查阅一些资料加以整理:1.SYN洪水介绍当一个系统(客户端C)尝试和一个提供了服务的系统(服务器S)建立TCP连接,客户端C和服务端S会交换一系列报文。 正常的3次握手连接:首先是C发送一个SYN报文给服务端S,然后这个服务端发送一个SYN-ACK包以回应C,接着,C就返回一个ACK包来实现一次完整的TCP连接。就这样,C到服务端

2015-03-28 18:15:58 7425

原创 TCP协议--CLOSE_WAIT状态

1.服务器异常如果服务器出了异常,十之八九都是以下两种情况:1.服务器保持了大量TIME_WAIT状态2.服务器保持了大量CLOSE_WAIT状态因为linux分配给一个用户的文件句柄是有限的,而TIME_WAIT和CLOSE_WAIT两种状态如果一直被保持,那么意味着对应数目的通道就一直被占着,一旦达到句柄数上限,新的请求就无法被处理了,接着应用程序可能返回大量Too Many Open Fil

2015-03-26 20:38:20 27050

原创 TCP协议--TIME_WAIT状态

2MSL TIME_WAIT状态存在的理由:TIME_WAIT状态的存在有两个理由:(1)让4次握手关闭流程更加可靠;4次握手的最后一个ACK是是由主动关闭方发送出去的,若这个ACK丢失,被动关闭方会再次发一个FIN过来。若主动关闭方能够保持一个2MSL的TIME_WAIT状态,则有更大的机会让丢失的ACK被再次发送出去。(2)防止lost duplicate对后续新建正常链接的传输造成破坏。l

2015-03-26 20:34:49 2607

原创 《TCP/IP详解》读书笔记(23章)-TCP的保活定时器

可能存在这么一种空闲TCP连接:没有任何数据流通过。也就是说,如果TCP连接的双方都没有向对方发送数据,则在两个TCP模块之间不交换任何信息,这意味着我们可以启动一个客户与服务器建立连接,然后长时间不使用,而连接依然保持。中间的路由器可以崩溃和重启,电话线可以被挂断再连接,但只要两端的主机没有被重启,则连接依然保持建立。然而,许多时候一个服务器希望知道客户主机是否崩溃并关机或者崩溃又重新启动,许多

2015-03-19 13:00:25 2176

原创 《TCP/IP详解》读书笔记(21章)-TCP的超时与重传

TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该数据。对于实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。TCP管理4种不同的定时器:重传定时器:当希望收到另一端的确认时使用。坚持定时器:使窗口信息保持不断流动,即使另一端关闭

2015-03-19 12:59:25 5352 4

原创 《TCP/IP详解》读书笔记(22章)-TCP的坚持定时器

TCP通过让接收方指明希望从发送方接收的数据字节数(即窗口大小)来进行流量控制。如果窗口大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗口变为非0为止。ACK的传输并不可靠,也就是说,TCP不对ACK报文段进行确认,TCP只确认那些包含有数据的ACK报文段。1.坚持定时器假设一个场景:如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止,接收方等待接收数据(因为它已经向发送方通告

2015-03-19 12:58:24 2103

原创 《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止

TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须在双方之间建立一条连接。这种两端间连接的建立与无连接协议UDP不同,UDP向另一端发送数据报时,无需任何预告的握手。1.建立连接的协议(3次握手)1)请求端发送一个SYN段指明客户端打算连接的服务器端口,以及初始序列号。2)服务器发回包含服务器的初始序号的SYN报文段作为应答。同时将确认序号设置为客户的ISN加1以对客户的SYN报文

2015-03-17 17:24:06 3639

原创 《TCP/IP详解》读书笔记(20章)-TCP的成块数据流

目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提

2015-03-17 17:23:22 3940 1

原创 《TCP/IP详解》读书笔记(19章)-TCP的交互数据流

在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,如果按字节计算,成块数据与交互数据的比例约为90%和10%,TCP需要同时处理这两类数据,且处理的算法不同。书籍本章中以Rlogin应用为例观察交互数据的传输过程。提示经受时延的确认是如何工作以及Nagle算法怎样减少了通过广域网络传输的小分组的数目。交互式输入上图为没有优化的字符输入回显的数据传输过程,一共需要四个报文段。经受时延的确认

2015-03-17 17:23:02 4134

原创 《TCP/IP详解》读书笔记(17章)-TCP传输控制协议

1.TCP的服务在一个TCP连接中,仅有两方进行彼此通信。TCP通过下列方式来提供可靠性:1)应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度保持不变。由TCP传递给IP的信息单位称为报文段或段。2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段,这将在21章中重传策略中讨论。3)当TCP收

2015-03-17 17:22:02 2429

原创 《HTTP权威指南》读书笔记(6)-实体和编码

一、实体首部HTTP实体首部描述了HTTP报名的内容。HTTP/1.1版定义了以下10个基本字体首部字段。Content-Type:实体中所承载对象的类型Content-Length:所传送实体的长度或大小Content-Language:与所传送对象最相配的人类语言Content-Encoding:对象数据所做的任意变换(例如压缩)Content-Location:一个备用位置,请求时可通过它获

2015-02-12 12:48:38 1753

原创 《HTTP权威指南》读书笔记(5)-客户端识别与Cookie机制

一、Cookie的类型    可以笼统地将Cookie分为两大类:会话Cookie和持久Cookie。    会话Cookie是一种临时Cookie,它记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话Cookie就被删除了。    持久Cookie的生存时间更长一些;它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。通常会用持久Cookie维护某个用户会周期性访问的站点的配置文件或登

2015-02-12 11:03:48 2063

原创 《HTTP权威指南》读书笔记(4)-缓存

概述  Web缓存可以自动保存常见文档副本的HTTP设备。当Web请求抵达缓存时,如果本地有“已缓存的”副本,就从本地存储设备而不是原始服务器中提取这个文档。使用缓存的优点减少了冗余的数据传输缓解了网络的瓶颈的问题(不许更多的的带宽就能更快加载)降低了对原始服务器的要求降低了距离时延冗余的数据传输  1.多名用户访问原始服务器页面时,服务器会多次传输同一份文档,相同的字节会在网络中一遍遍地传输。有

2015-02-11 17:20:29 2021

原创 《HTTP权威指南》读书笔记(3)-HTTP连接管理及对TCP性能的考虑

一、HTTP如何使用TCP连接      世界上几乎所有的HTTP通信都是有TCP/IP承载的,它是一种常用的分组交换网络分层协议集。HTTP连接实际就是TCP连接及其使用规则。web浏览器与服务器通过TCP连接的交互如下图:                                  TCP流是通过分段、由IP分组传送 TCP数据是通过IP分组(或IP数据报)的小数据块来发送的。HTTP就

2015-02-11 12:56:42 4372

原创 《HTTP权威指南》读书笔记(2)-URL与资源

大多数的URL方案的URL语法都建立在这个由9个部分构成的通用格式上:://:@:/;?#,几乎没有哪个URL包含了所有这些组件。URL最重要的3个方案(scheme)、主机(host)和路径(path)

2015-02-11 12:55:41 1933

原创 《HTTP权威指南》读书笔记(1)-HTTP简介与消息结构

HTTP 简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP 工作原理HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向H

2015-02-11 12:53:27 3215

原创 Nginx防蜘蛛爬虫处理

一个网站,它可能不想被网络爬虫抓取,例如测试环境不希望被抓取,以免对用户造成误导,那么需要在该网站中申明,本站不希望被抓取。有如下方法:方法一:修改nginx.conf,禁止网络爬虫的ua,返回403。server { listen 80; server_name www.ready.com; #添加如下内容即可防止爬虫if ($http_user_agent ~* "qihoobot|Baidu

2014-09-20 16:06:21 27696 3

原创 PHP:exec与system区别

在PHP中调用外部命令,可以用exec 及 system来实现: system() 原型:string system (string command [, int return_var]) system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。    返回结果        成功返回0,           失败(命令不存在等原

2014-09-20 16:05:08 14205 3

原创 PHP:Cannot modify header information - headers already sent by出错解决

ob_start();setcookie("username","test",time()+3600);echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n";echo "the username is:".$_COOKIE["username"]."\n";print_r($_COOKIE);?>访问该PHP文件时提示Warning:

2014-09-17 13:09:24 51938 3

原创 PHP: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No

解决方法:1、进入mysql安装目录查看,确认有libmysqlclient.so.16.0.0 文件, 于是需要在/usr/lib目录下建立一个软链接来指向libmysqlclient.so.162、在php lib目录下下建立个软链接:(格式为:ln -s mysql lib路径  php lib路径)ln -s /home/openpf/app/mysql-5.1.56-2/lib/mysq

2014-09-16 19:53:55 9823

原创 记录一次Linux操作系统最大文件数限制的解决过程

如何修改linux最大 文件打开数 , 通过ulimit,修改limits.conf文件,file-max还是file-nr服务器

2014-09-04 20:03:43 4868 1

原创 FastDFS安装、配置、部署(二)-Tracker配置详解

1、基本配置# is this config file disabled# false for enabled# true for disableddisabled=false# bind an address of this host# empty for bind all addresses of this hostbind_addr=10.16.139.202# the track

2014-08-16 13:30:11 13043 1

原创 FastDFS安装、配置、部署(三)-Storage配置详解

1、基本配置# is this config file disabled# false for enabled# true for disableddisabled=false# the name of the group this storage server belongs togroup_name=group1# bind an address of this host#

2014-08-16 13:29:16 15977 2

原创 FastDFS安装、配置、部署(一)-安装和部署

FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站FastDFS有两个角色:跟踪服务(tracker)和存储服务(storage),跟踪服务控制,调度文件以负载均衡的方式访问;存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管

2014-08-16 10:53:05 134176 20

selenium_server_tandalone-2.38.0.jar

selenium_server_tandalone-2.38.0.jar

2013-12-15

Selenium Grid 测试可用

Selenium Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-app的功能测试。利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。

2013-11-24

QTP虚拟对象的使用

QTP 虚拟对象的使用方法,在使用qtp录制脚本时会遇到对象不能识别的问题,可以采用创建虚拟对象的方法来解决此问题。

2013-01-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除