« 类别 性能(Performance) 下的文章
分布式服务框架 Zookeeper — 管理分布式环境中的数据
许 令波 , Java 工程师, 淘宝网 许 令波,现就职于淘宝网,是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣,喜欢钻研开源框架的设计原理。有时间将学到的知识整理成文章,也喜欢记录下工作和生活中的一些思考。个人网站 是: HYPERLINK http://xulingbo.net http://xulingbo.net。 简介: Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将 从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等),用 Java 实现它们并给出示例代码。 安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/ 来获取,Zookeepe…
Google Protocol Buffer 的使用和原理
刘 明 , 软件工程师, 上海交大电子与通信系 从事软件开发工作 10 年以上,爱好开源软件,目前从事数据库和数据仓库的开发工作。 简介: Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平…
memlink——-又一个key-value型nosql数据库诞生
Memlink简介 Memlink 是一个高性能、持久化、分布式的Key-list/queue数据引擎。正如名称中的memlink所示,所有数据都建构在内存中,保证了系统的高性能 (大约是redis几倍),同时使用了redo-log技术保证数据的持久化。Memlink还支持主从复制、读写分离、List过滤操作等功能。 特点: 内存数据引擎,性能极为高效 List块链结构,精简内存,优化查找效率 Node数据项可定义,支持多种过滤操作 支持redo-log,数据持久化,非Cache模式 分布式,主从同步 与Redis区别 redis同样也提供key-list 存储功能,memlink与redis区别有: redis比较消耗内存。每个存储节点,在不支持vm的情况下要额外消耗12字节内存,在支持vm的情况下,每个节点额外消耗24字节内存。对于存储上亿条数据来说,额外消耗的内存太大。 redis redo-log不够完善。redis redo-log机制:每隔一段时间同步磁盘(此期间重启就好丢失数据);追加log方式,会使log文件越来越大,而且性能不够优化。 主从同步不完善。如果从节点因为网…
Linux 性能监测:Network(五)
网络的监测是所有 Linux 子系统里面最复杂的,有太多的因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与 Linux 主机相连的路由器、交换机、无线信号都会影响到整体网络并且很难判断是因为 Linux 网络子系统的问题还是别的设备的问题,增加了监测和判断的复杂度。现在我们使用的所有网卡都称为自适应网卡,意思是说能根据网络上的不同网络设备导致的不 同网络速度和工作模式进行自动调整。我们可以通过 ethtool 工具来查看网卡的配置和工作模式: # /sbin/ethtool eth0Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/F…
Linux 性能监测:IO(四)
磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的速度差别是以数量级来计算的,就像1天和1分钟的差别一样。要监测 IO 性能,有必要了解一下基本原理和 Linux 是如何处理硬盘和内存之间的 IO 的。 内存页 上一篇 Linux 性能监测:Memory(三) 提到了内存和硬盘之间的 IO 是以页为单位来进行的,在 Linux 系统上1页的大小为 4K。可以用以下命令查看系统默认的页面大小: $ /usr/bin/time -v date ... Page size (bytes): 4096 ... 缺页中断 Linux 利用虚拟内存极大的扩展了程序地址空间,使得原来物理内存不能容下的程序也可以通过内存和硬盘之间的不断交换(把暂时不用的内存页交换到硬盘,把需要的内 存页从硬盘读到内存)来赢得更多的内存,看起来就像物理内存被扩大了一样。事实上这个过程对程序是完全透明的,程序完全不用理会自己哪一部分、什么时候被 交换进内存,一切都有内核的虚拟内存管理来完成。当程序启动的…
Linux 性能监测:Memory(三)
“内存” 包括物理内存和虚拟内存,虚拟内存(Virtual Memory)把计算机的内存空间扩展到硬盘,物理内存(RAM)和硬盘的一部分空间(SWAP)组合在一起作为虚拟内存为计算机提供了一个连贯的虚拟内 存空间,好处是我们拥有的内存 ”变多了“,可以运行更多、更大的程序,坏处是把部分硬盘当内存用整体性能受到影响,硬盘读写速度要比内存慢几个数量级,并且 RAM 和 SWAP 之间的交换增加了系统的负担。 在操作系统里,虚拟内存被分成页,在 x86 系统上每个页大小是 4KB。Linux 内核读写虚拟内存是以 “页” 为单位操作的,把内存转移到硬盘交换空间(SWAP)和从交换空间读取到内存的时候都是按页来读写的。内存和 SWAP 的这种交换过程称为页面交换(Paging),值得注意的是 paging 和 swapping 是两个完全不同的概念,国内很多参考书把这两个概念混为一谈,swapping 也翻译成交换,在操作系统里是指把某程序完全交换到硬盘以腾出内存给新程序使用,和 paging 只交换程序的部分(页面)是两个不同的概念。纯粹的 swapping 在现代操作系统中已经很难看到了,…
BigPipe:高性能的“流水线技术”网页
原文地址: http://www.facebook.com/note.php?note_id=389414033919 译文地址: http://isd.tencent.com/?p=2419 作者:蒋长浩 Facebook的网站速度做为最关键的公司任务之一。在2009年,我们成功地实现了 Facebook网站速度提升两倍 。而正是我们的工程师团队的几个关键的创新使它成为可能。在本文中,我将向大家介绍我们的秘密武器之一,我们称之为BigPipe的伟大底层技术。 BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道 并管理他们在不同阶段的运行。这是类似于大多数现代微处理器的流水线执行过程:多重指令管线通过不同的处理器执行单元,以达到性能的最佳。虽然 BigPipe是对现有的服务网络基础过程的重新设计,但它却不需要改变现有的网络浏览器或服务器,它完全使用PHP和JavaScript来实现。 动机 为了更好的了解BigPipe,我们需要了解一下现有的动态Web服务系统,它的历史可以追溯到万维网的初期,但现在…
CentOS+Cacti安装配置
#################################### #Cacti Configuration #Date: 2009-11-04 #Env: Centos 5.4 x86_64 #################################### 一、准备工作 环境:Centos 5.4 x86_64 所需软件: http Php Php-mysql Php-snmp Mysql Perl-DBD-MySQL Php-pdo rrdtool Net-snmp Net-snmp-libs Net-snmp-utils #下载相关软件 cd /usr/local/src/ wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz 二、环境介绍 主监控机是Centos 5.4 x86_64 主监控机IP=10.0.0.52 三、安装配置 (1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,不再赘述,本处方便起见用yum装了 yum install php php-mysql php-snm…
A/B测试终极指南
A / B测试不是一个时髦名词。现在很多有经验的营销和设计工作者用它来获得访客行为信息,来提高转换率。然而, A / B测试与SEO不同的是,人们都不太知道徒河进行网站分析和可用性分析。他们并不完全明白它是什么或如何更有效的使用它。本文将为你提供有史以来最好的A / B测试教程。 什么是A/B测试? A / B测试的核心就是:确定两个元素或版本(A和B)哪个版本更好,你需要同时实验两个版本。最后,选择最好的版本使用。 网络上的A / B测试,即你设计的页面有两个版本(A和B),A为现行的设计(称为控制) , B是新的设计。比较这两个版本之间你所关心的数据(转化率,业绩,跳出率等) 。最后,您选择效果最好的版本。 测试哪些东西? 你要选择什么去测试取决于你的目标。例如,如果你的目标是增加顾客数量,那么您可能测试下列内容:注册表单数量,字段类型要求,隐私政策等。在这种 情况下A / B测试的目标是要弄清楚什么阻止了游客注册。需要填写的表单的数量?用户的隐私?还是该网站做了让游客不信任的事情?所有这些问题都可以通过一个个A/B 测试获得答案。 每一个A / B测试内容都是独一无二的,单通常测…
10 个强大的开源 Web 流量分析工具
Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足。本文收集并介绍了10个功能强大的开源 Web 流量分析工具,因为是开源的,因此可以免费部署到你的网站。 TraceWatch TraceWatch 是一个开源 Web 流量分析程序,支持实时分析,可以提供深度分析报告。 SlimStat 基于 PHP-MySQL,同时,可以像 Google Analytics 那样,通过 JavaScript 或 PHP 脚本集成到网站。 Piwik 可以生成站点的详细的实时访问报告,基于 PHP 和 MySQL,也可以像 Google Analytics 那样在前端集成。 Open Web Analytics 基于 PHP,内置对 WordPress,Gallery 以及 MediaWiki 的支持。 W3Perl W3Perl 是一个 Web Log 分析工具。 CrawlTrack CrawTrack 是一个很好的 Google Analytics 的开源替用品,…
传播、沟通、分享