自定义博客皮肤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)
  • 收藏
  • 关注

原创 Tokyo Tyrant(TTServer)系列(六)-数据丢失谁的错

前面的一些文章讲到了memcache以及TT,memcache内存数据库很好理解,数据存储在内存中,重启服务器或者重启memcahce进程,数据是会丢失的。那么我们也提到过TTServer数据是持久存储的,它的数据真是绝对安全吗?       下面我们来具体测试一下,在测试服务器启动两个ttserver,不记录日志。12ttserver -port 1978 -dmn -pid /data/tts

2014-08-14 00:13:19 3405 1

原创 Tokyo Tyrant(TTServer)系列(五)-ttserver的几种部署方式

ttserver的几种部署方式可以把ttserver理解成一种key-value形式的数据库,在运营中就像管理数据库一样去管理ttserver,使得性能和数据安全都能得到较好的保障。部署ttserver的方式,可以根据访问量和数据规模循序渐进地这样部署:1、单机:数据量不大,访问量不大ttserver -host 192.168.0.100 -port 20001 -thnum 128 -dmn

2014-08-14 00:02:51 3663

原创 There is insufficient memory for the Java Runtime Environment to continue问题解决

在linux系统下长时间进行性能测试,连续几次发现服务器假死无法连接上的情况,无奈只能重启服务器。在测试路径下发现hs_err_pid17285.log文件,打开文件查看其主要内容如下:# There is insufficient memory for the Java Runtime Environment to continue.# Cannot create GC thread. Out

2014-07-31 23:18:38 120452 12

原创 Tokyo Tyrant(TTServer)系列(四)-tcrmgr远程管理与调试

Tokyo Tyrant(TTServer)系列-tcrmgr(远程管理与调试)通过输入tcrmgr回车,可以看到相关操作选项:tcrmgr inform [-port num] [-st] host 查看当前服务运行状态信息tcrmgr put [-port num] [-sx] [-sep chr] [-dk|-dc|-dai|-dad] host key value 保存一条记录tcrmgr

2014-07-27 21:27:24 5259

原创 Tokyo Tyrant(TTServer)系列(三)-Memcache协议

通过memcache协议使用ttserver 通过telnet 127.0.0.1 9032 telnet连接到到启动的实例。以下我们通过add增加key为key1和value为value1的数据。通过get key1获取数据。( )add key1 1 0 6value1STOREDget key1VALUE key1 0 6value1END编写php脚本$mem=new Memcache

2014-07-27 21:26:21 3444

原创 Tokyo Tyrant(TTServer)系列(二)-启动参数和配置

启动参数介绍        ttserver命令可以启动一个数据库实例。因为数据库已经实现了Tokyo Cabinet的抽象API,所以可以在启动的时候指定数据库的配置类型。支持的数据库类型有:内存hash数据库内存tree数据库hash数据库B+ tree数据库,  命令通过下面的格式来使用,‘dbname’制定数据库名,如果省略,则被视作内存hash数据库。ttserver [-host na

2014-07-27 21:20:56 3219

原创 Tokyo Tyrant(TTServer)系列(一)-介绍和安装

Tokyo Cabinet 是日本人Mikio Hirabayashi 开发的一款DBM 数据库,该数据库读写非常快,哈希模式写入100 万条数据只需0.643 秒,读取100 万条数据只需0.773 秒,是Berkeley DB 等DBM 的几倍。Tokyo Tyrant 是由同一作者开发的Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP 协议进行

2014-07-27 21:19:49 7324

原创 PHP如何添加自带的扩展库

当服务器上PHP已经安装好,需要额外添加PHP扩展时怎么办,不需要重新安装PHP,有了phpize我们可以在原有的PHP基础之上直接安装扩展库。这次编译仅仅只是单独编译PHP的扩展库,接下来将编译好的扩展库加入到现在运行的php中,不对现在运行的php重新编译,所以没有一点的影响。下面我们演示安装xsl的扩展(不一定常用,仅做为一个范例)做法一:1.找到当前运行的php版本的源

2014-05-29 23:25:24 13388 1

原创 Memcache(MC)系列(三)Memcached之PHP调用

通过PHP调用Memcahce,首先需要在服务器上安装Memcache,如何安装Memcache不是本文的重点,关于memcache的安装,有兴趣的朋友请参考这篇文章:http://blog.csdn.net/xifeijian/article/details/22000173 下面用一个最简单的Demo,介绍使用如何使用php来调用Memcahce。一:安装memcache PH

2014-05-29 23:23:57 5333

原创 Memcache(MC)系列(二)Linux下Memcache安装

Linux下memcache的安装memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。目前用memcache解决互联网上的大用户读取是非常流行的一种用法,在互联网企业中有着广泛的应用。‍关于memcache的详细介绍,有兴趣的朋友请参考这篇文章:http://blog.csdn.net/xifeijian/article/details/219

2014-05-27 23:50:52 4805

原创 Memcache(MC)系列(一)Memcache介绍、使用、存储、算法、优化

写在前面:前不久在工作中被问到关于MC一致哈希的问题,由于时隔太久几乎忘记,特前来恶补一下MC,以下是前几年在工作中学习MC时的一些资料,来历不明,特整理一下,希望对大家的学习也能有帮助。关于memcache的安装,有兴趣的朋友请参考这篇文章:http://blog.csdn.net/xifeijian/article/details/220001731、memcached 介绍1.1

2014-05-27 23:49:58 15614

原创 Apache轻量级性能测试工具--ab

ab已经不是什么新鲜玩意,平时工作中会需要一些性能测试,很多工作完全可以由AB来替代,而不需要动用LR这样重量级的工具。此文仅做个笔记,以便以后查阅。1、安装:要使用AB,需要先安装Apache,它是Apache自带的测试工具(apache benchmark),在apache的安装目录下。2、使用:使用格式: ./ab [options] [http://]hostname[:por

2014-05-07 20:43:05 6317

原创 Nginx配置性能优化

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一

2014-04-03 22:23:18 154070 9

原创 Nginx Rewrite规则初探

Nginx  rewrite(nginx url地址重写)Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。通过Rewrite规则,可以实现规范的URL、根据变量来做URL转向及选择配置。  if        指令

2014-04-03 22:18:49 44231 1

原创 Nginx配置&负载均衡实战

在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。nginx同时是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx是一款面向性能设计的HTTP服务器,相较于Apac

2014-04-03 22:18:11 13597 1

转载 Nginx与PHP(FastCGI)的安装、配置与优化

一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序

2014-04-03 22:17:23 2888

原创 FastCGI简介

1CGI定义CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。2FastCGIFastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激

2014-03-19 22:53:28 3638

原创 TCP为什么需要3次握手与4次挥手

为什么需要“三次握手”            在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。在另一部经典的《计算机网络》一书中讲“三次握手”的目的是为了解决“网络中存在延迟的重复分组”的问题。这两种不用的表述其实阐明的是同一个问题。            谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求

2014-03-14 22:36:08 73949 8

转载 MysqlReport解析

1 MySQL 5.0.3              uptime 0 0:34:26    Fri Sep   1 19:46:02 20062 3 __ Key _________________________________________________________________ 4 Buffer used 380.00k of 512.00M   %Used: 0

2014-03-09 20:11:40 5136 1

原创 MySQL数据恢复--binlog

MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据恢复 * 主从数据库。用于slave端执行增删改,保持与master同步。 1.开启binary log功能      需要修改mysql的配置文件,本篇的实验环境是win7,配置文件为mysql安装目录\MySQL Server 5.1下的

2014-03-07 23:16:14 25082 2

转载 MySQL详解--锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL

2014-03-06 23:45:06 136203 29

原创 《高性能MySQL》读书笔记--索引

索引(在MYSQL中也叫做键<key>),是存储引擎用于快速找到记录的一种数据结构。写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在...

2014-03-06 23:41:45 10475 2

原创 MySQL基本概念--索引&索引类型

索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  );   我们随机向里面插入了1000

2014-03-06 23:38:10 5533 1

原创 MySQL基本概念--锁

介绍下对于Mysql锁机制的理解从基本概念开始:共享锁共享锁的代号是S,是Share的缩写,共享锁的锁粒度是行或者元组(多个行)。一个事务获取了共享锁之后,可以对锁定范围内的数据执行读操作。排它锁排它锁的代号是X,是eXclusive的缩写,排它锁的粒度与共享锁相同,也是行或者元组。一个事务获取了排它锁之后,可以对锁定范围内的数据执行写操作。假设有两个事务t1和t2如果

2014-03-04 23:56:06 5010 4

原创 MySQL基本概念--数据类型

1. mysql的数据类型       在mysql中有如下几种数据类型:      (1)数值型       数值是诸如32 或153.4 这样的值。mysql支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。而1.24e12 不是合法的,

2014-03-04 23:43:41 5411

原创 MySQL主从复制

mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复。需要两台机器,安装mysql,两台机器要在相通的局域网内,可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 主机A: 192.168.1.100从机B:192.168.1.101可以有多台从机1、先登录主机 A,在主服务器上,设置一个从数据库的账户,使用REPLI

2014-03-03 22:55:49 12279 1

原创 MySQL存储引擎--MyISAM与InnoDB区别

MyISAM 和InnoDB 讲解  InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。  以下是一些细节和具

2014-03-03 22:29:29 255370 19

原创 影响MySQL性能的五大配置参数

我们今天主要和大家分享的是对MySQL性能影响关系紧密的五大配置参数,以下就是文章的具体内容描述,希望会给你带来一些帮助。以下的文章主要是对MySQL性能影响关系紧密的五大配置参数的介绍,我前几天在相关网站看见对MySQL性能影响关系紧密的五大配置参数的资料,觉得挺好,就拿出来供大家分享,望你能有所收获。(一)连接连接通常来自Web服务器,下面列出了一些与连接有关的参数,以及该如何设置

2014-03-02 21:32:38 7652

原创 MySQL explain执行计划解读

本文我们主要介绍了MySQL性能分析以及explain的使用,包括:组合索引、慢查询分析、MYISAM和INNODB的锁定、MYSQL的事务配置项等,希望能够对您有所帮助。1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_keys key ke

2014-03-02 21:22:51 71561 6

原创 linux scp 无密码复制文件和目录

在远程拷贝的时候,需要配置scp的 无密码 复制文件、目录。在编写Shell脚本的时候非常有用,你不希望shell脚本在执行过程中因为要检验密码被打断而报权限错误吧。整个过程如下: 本地服务器:A远程服务器:B     1.在 A 上运行 ssh-keygen -t rsa 在/home/openpf/.ssh下生成id_rsa 和 id_rsa.pub 两个文件,然后在/home/openpf/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A,以便拷贝

2014-02-26 20:45:33 13239

原创 Linux进程KILL--Quit,INT,HUP,QUIT,和TERM的解释

KILL----是不可以封锁的,他在OS级别上终止进程.    INT----是当用户键入时由终端驱动程序发送的信号.这是一个终止当前操作的请求.如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法.拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入.    TERM----是请求彻底终止某

2014-02-23 23:32:31 29927

原创 (Nginx+Apache)实现反向代理与负载均衡

反向代理负载均衡使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求 均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web 服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也

2014-01-26 22:38:51 24549 1

原创 MAT(Memory Analyzer Tool)工具入门介绍

1、MAT是什么?    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。    2.为什么

2014-01-19 00:38:46 6566 1

原创 Java VisualVM(Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool)

一.Java VisualVM 概述   对于使用命令行远程监控jvm太麻烦 。在jdk1.6中 Oracle 提供了一个新的可视化的。JVM 监控工具 Java VisualVM 。jvisualvm.exe在JDK的 bin 目录下。    双击启动 Java VisualVM 后可以看到窗口左侧 “应用程序 ”栏中有“本

2014-01-19 00:36:42 3513

原创 jmap命令(Java Memory Map)

1、介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -

2014-01-19 00:36:06 8311 1

原创 JConsole命令(Java Monitoring and Management Console)

一、JConsole是什么    从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JDK 在

2014-01-19 00:34:00 9056 5

原创 jstat命令(Java Virtual Machine Statistics Monitoring Tool)

1、介绍Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:- 类的加载及卸载情况- 查看新生代、老生代及持久代的容量及使用情况- 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间- 查看新生代中Eden区及Survior区中容量及分配情况等jstat工具特别

2014-01-19 00:32:56 3409

转载 GC学习必备知识

GC学习笔记这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收四、J2SE 5.0的HotSpot

2014-01-19 00:27:34 4419

原创 PHP curl 获取响应的状态码

PHP curl可以从服务器端模拟一个http请求,例如抓取网页、模拟登陆等。根据选项设置,可以在curl_exec的返回结果中获取到响应头和body,但这没有响应的状态吗。想要获取状态码,需要在执行curl_exec后再通过curl_getinfo来获取。例如:$ch = curl_init ();curl_setopt($ch, CURLOPT_URL, 'http://www.goo

2014-01-11 21:18:05 22786

原创 easy_install与pip 区别

easy_install和pipeasy_insall的作用和perl中的cpan,ruby中的gem类似,都提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版,提供更好的提示信息,删除package等功能。老版本的python中只有easy_install,没有pip。标签:python 作为Python爱好者,如果不知道easy_install或者pip中的任何一个的话,那么只有一句话可以来描述了 --"Shame on you".easy_

2014-01-01 17:19:59 32138

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关注的人

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