自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 三分天下

DAS、SAN和NAS   为了满足人们不断扩大的需求,存储方案也是在发展的。而DAS、SAN、NAS直接反映这种反映了这种趋势。  单台主机。在这种情况下,存储作为主机的一个或多个磁盘存在,这样局限性也是很明显的。由于受限于主机空间,一个主机只能装一块到几块硬盘,而硬盘空间时受限的,当磁盘满了以后,你不得不为主机更换更大空间的硬盘。独立存储空间。为了解决空间的

2016-12-02 14:26:49 353

转载 RAID

Raid很基础,但是在存储系统中占据非常重要的地位,所有涉及存储的书籍都会提到RAID。RAID通过磁盘冗余的方式提高了可用性和可高性,一方面增加了数据读写速度,另一方面增加了数据的安全性。 RAID 0 对数据进行条带化。使用两个磁盘交替存放连续数据。因此可以实现并发读写,但带来的问题是如果一个磁盘损坏,另外一个磁盘的数据将失去意义。RAID 0最少需要2块盘。  

2016-12-02 14:26:10 336

转载 Driver & IO Channel

这部分值得一说的是多路径问题。IO部分的高可用性在整个应用系统中可以说是最关键的,应用层可以坏掉一两台机器没有问题,但是如果IO不通了,整个系统都没法使用。如图为一个典型的SAN网络,从主机到磁盘,所有路径上都提供了冗余,以备发生通路中断的情况。  OS配置了2块光纤卡,分别连不同交换机SAN网络配置了2个交换机存储配置了2个Controller,分别连不同交换机  

2016-12-02 14:25:37 304

转载 逻辑卷管理

LVM(逻辑卷管理),位于操作系统和硬盘之间,LVM屏蔽了底层硬盘带来的复杂性。最简单的,LVM使得N块硬盘在OS看来成为一块硬盘,大大提高了系统可用性。  LVM的引入,使得文件系统和底层磁盘之间的关系变得更为灵活,而且更方便关系。LVM有以下特点: 统一进行磁盘管理。按需分配空间,提供动态扩展。条带化(Striped)镜像(mirrored)快照(snapshot)

2016-12-02 14:24:58 322

转载 文件系统

文件系统各有不同,其最主要的目标就是解决磁盘空间的管理问题,同时提供高效性、安全性。如果在分布式环境下,则有相应的分布式文件系统。Linux上有ext系列,Windows上有Fat和NTFS。如图为一个linux下文件系统的结构。 其中VFS(Virtual File System)是Linux Kernel文件系统的一个模块,简单看就是一个Adapter,对下屏蔽了下层不同文件系统之间的

2016-12-02 14:24:17 234

转载 IO性能的重要指标

最重要的三个指标 IOPSIOPS,即每秒钟处理的IO请求数量。IOPS是随机访问类型业务(OLTP类)很重要的一个参考指标。  一块物理硬盘能提供多少IOPS?从磁盘上进行数据读取时,比较重要的几个时间是:寻址时间(找到数据块的起始位置),旋转时间(等待磁盘旋转到数据块的起始位置),传输时间(读取数据的时间和返回的时间)。其中寻址时间是固定的(磁头定位到数据的存储

2016-12-02 14:23:35 796

转载 IO模型

这部分的东西在网络编程经常能看到,不过在所有IO处理中都是类似的。IO请求的两个阶段:       等待资源阶段:IO请求一般需要请求特殊的资源(如磁盘、RAM、文件),当资源被上一个使用者使用没有被释放时,IO请求就会被阻塞,直到能够使用这个资源。       使用资源阶段:真正进行数据接收和发生。       举例说就是排队和服务。 在等待数据阶段,IO分为阻塞IO和非阻塞

2016-12-02 14:22:59 172

翻译 IO的分层

IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。 IO系统的分层:   三层结构上图层次比较多,但总的就是三部分。磁盘(存储)、VM(卷

2016-12-02 14:22:24 285

转载 参考资料

能整理出上面一些东西,也是因为站在巨人的肩上。下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:) · Java 理论与实践: 垃圾收集简史 · Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning · Improving Java Application Performance and S

2016-12-02 11:17:18 171

转载 反思

垃圾回收的悖论    所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK增加G1算法的一个重要原因。    当然,上面是从技术角度出发解决垃圾回收带来的问题,

2016-12-02 11:16:14 146

转载 调优方法

JVM调优工具  Jconsole,jProfile,VisualVM  Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里  JProfiler:商业软件,需要付费。功能强大。详细说明参考这里  VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。  如何调优  观察内存释放

2016-12-02 09:07:42 220

转载 新一代的垃圾回收算法

垃圾回收的瓶颈传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对

2016-12-02 09:06:48 170

转载 典型配置

以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可

2016-12-02 09:06:07 181

转载 分代垃圾回收

为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程中生成

2016-12-02 09:05:10 238

转载 垃圾回收面临的问题

如何区分垃圾上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是真正进行程序

2016-12-02 09:03:41 828

转载 基本垃圾回收算法

可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep):此算法执行分两阶段。第

2016-12-02 09:02:37 195

转载 一些概念

数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress

2016-12-02 09:01:46 176

转载 mysql的sort buffer和join buffer介绍

摘要:如果应用中,很少出现join语句,则可以不用太在乎join_buffer_size参数的设置大小。如果join语句不是很少的话,个人建议可以适当增大join_buffer_size到1MB左右,如果内存充足可以设置为2MB...相关参数查看命令SELECT @@join_buffer_size;SELECT @@sort_buffer_size;=

2016-11-29 17:23:05 15161

转载 浅谈软件性能测试中关键指标的监控与分析

浅谈软件性能测试中关键指标的监控与分析一、软件性能测试需要监控哪些关键指标?软件性能测试的目的主要有以下三点:Ø  评价系统当前性能,判断系统是否满足预期的性能需求。Ø  寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。Ø  判定软件系统的性能表现,预见系统负载压力承受力,在应用部署之前,评估系统性能。而对于用户来说,则最关注的是当前系统:Ø  是否满足上线性能

2016-11-29 15:00:18 2906

转载 linux查看磁盘io的几种方法

怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式:  第一种:用 top 命令 中的cpu 信息观察  Top可以看到的cpu信息有:  Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie  Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa

2016-11-29 14:59:12 3590

转载 Linux系统查看当前主机CPU、内存、机器型号及主板信息:

查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看内存信息# cat /proc/meminfo 查看主板型号:# dmidecode |grep -A16 "System Information$" 查看机器型号# dmidecode | grep "Product N

2016-11-29 14:58:15 1656

转载 linux 系统下查看raid信息,以及磁盘信息

有时想知道服务器上有几块磁盘,如果没有做raid,则可以简单使用fdisk -l  就可以看到。但是做了raid呢,这样就看不出来了。那么如何查看服务器上做了raid?  软件raid:只能通过Linux系统本身来查看   cat /proc/mdstat   可以看到raid级别,状态等信息。   硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具

2016-11-29 14:57:35 82562

转载 磁盘分区基础和LINUX上硬盘分区设备号解释

现在就开始讲讲分区,先明确一下概念:主分区:一块物理硬盘上可以被独立使用的一部分,一个硬盘最多可以有4个主分区。扩展分区:为了突破一个物理硬盘只能有4个分区的限制,引入了扩展分区。扩展分区和主分区的地位相当,但是扩展分区本身不能被直接使用,然而可以被继续划分成多个逻辑分区。逻辑分区:逻辑分区可以有任意多个,但是不能独立存在,多个连续的逻辑分区可做为一个扩展分区。一个硬盘只能有一个扩展分

2016-11-29 14:56:51 2164

转载 使用fio测试磁盘I/O性能

测试准备工具:fio - Flexible IO Tester官方网站:http://freecode.com/projects/fiohttp://brick.kernel.dk/snaps/注意: 性能测试建议直接通过写裸盘的方式进行测试,会得到较为真实的数据。但直接测试裸盘会破坏文件系统结构,导致数据丢失,请在测试前确认磁盘中数据已备份。CentOS可以直接使用yum

2016-11-29 14:55:57 7624

转载 iotop命令

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。iotop使用Python语言编写而成,要求Python2.5(及以上版本)和

2016-11-29 14:55:24 342

转载 关系型数据库性能测试参考指标----SQL Server

SQL Server 指标名称指标描述指标范围指标单位1.SQL Server中访问方法(Access Methods)对象包含的性能计数器全表扫描/秒(Full Scans/sec)指每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫

2016-11-29 14:54:31 2619

转载 数据库性能测试方案示例

数据库性能测试方案示例 前言 : 究竟怎样进行数据库性能测试,数据库性能测试需要做些什么?大多数产品线的RD和QA也比较迷茫,经常过来咨询。 一般说来,做数据库性能测试需要如下几个步骤:1:明确测试目的2:设计测试模型 (即压力模型)3:准备测试集群环境4:准备压力测试工具或者编写压力测试脚本5:明确性能指标并加监控6:根据2设计的测试模型准备测

2016-11-29 14:53:59 818

转载 合理配置MySQL缓存 提高缓存命中率(转)

众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍。故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区域),来提高系统的运行效率。MySQL数据库也不例外。在这里,笔者将结合自己的工作经验,跟大家探讨一下,MySQL数据库中缓存的管理技巧:如何合理配置MySQL数据库缓存,提高缓存命中率。一、什么时候应用系统会从缓存中获取数据?  数据库从服务器上读取数

2016-11-29 14:53:08 2916

转载 MySQL查询缓存设置提高MySQL查询性能

首先看看MSYQL逻辑框架:图片来自高性能mysql如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存中检索结果,而不是再次分析和执行相同的查询。这样就能大大提高查询性能。打开查询缓存,要通过几个步骤来设置:虽然你设置mysql允许查询缓存,但是如果你设置的查询缓存大小为了0,这和没有允许没什么区别。所以必须是几个步骤的设置才能真正打

2016-11-29 14:51:49 183

空空如也

空空如也

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

TA关注的人

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