判断是sas盘还是sata盘
这个方法应该对许多人有帮助。
查看是sas 还是sata盘. Linux下运行如下命令
[root@appxxxx log]# more /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: SEAGATE Model: ST3146855SS Rev: 0004
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: SEAGATE Model: ST3146855SS Rev: 0004
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: SEAGATE Mode[……]
Read more
ssd盘的一些基本概念
对于SSD盘,我们有必要了解一些基础的概念
SSD
(Solid State Disk、Solid State Drive,简称SSD,俗称固态驱动器)是一种基于永久性存储器,如闪存,或非永久性存储器,同步动态随机存取存储器(SDRAM)的计算机外部存储设备。固态硬盘用来在便携式计算机中代替常规硬盘。虽然在固态硬盘中已经没有可以旋转的盘状结构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。
由于固态硬盘技术与传统硬盘技术不同,所以产生了不少新兴的存储器厂商。厂商只需购买NAND内存,再配合适当的控制芯片,就可以制造固态硬盘了。新一代的固态硬盘普遍采用SATA-3接口。
SSD的核心技术分为2块,一块是控制器,一块是Nand。(SOC和Nand相比,Nand的技术更难, 目前自己出Nand的公司有三星,东芝,美光,Intel等)
NAND 与 NOR
Not AND ,与非,NAND 里面的单元是按照 与非 的方式连起来的. 一般我们是这种FLASH。
NOR . 或非, NOR里面的单元是按照[……]
Read more
许多人会认为磁盘对齐,是一个很神奇的技术,可以让IO效率得到很大的提升,实际情况不然,我们在日常生产中,很少考虑过磁盘对齐的技术。
这篇文章讲述了一些基础概念,有助于大家理解磁盘对齐技术。
为了得到最优化的IO性能,我们需要确保在每个level都做到对齐,如下图,

按每层讲述:
innodb
You don’t need to do anything to align InnoDB pages 数据16kb 的pagesize 不用调整,新版本和一些第三方版本可以调整pagesize,innodb的日志是512字节哦。
File system
Some file systems let you set stripe width and stripe unit size so they can do a proper alignment based on that. 如XFS文件系统。
LVM 略 pvcreate–dataalignmentoffset501s–dataalignment256k/d[……]
Read more
如果内核支持,我们可以使用pidstat查看具体进程的IO活动。如,
pidstat -d -p 19667 2 2
-d #显示I/O统计信息(须内核2.6.20及以后)
我们可以通过管道限制io,如,
tar -cf – . | throttle -M 1 | tar -C /your/usb -xvf –
或者通过修改优先级的方式调整IO,比如把高IO的操作降级,删除一个大文件。
ionice -c 3 cp largefile /new/directory
-c The scheduling class. 1 for real time, 2 for best-effort, 3 for idle.
网络调优 参考 Linux Tuning Parameters
Network Tuning
Might be needed sometimes
•echo 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlog
•MySQL: back_log=1000
•net.ipv4.ip_local_port_range=”1024 64000“
•net.core.somaxconn = 1024
•net.core.rmem_max = 16777216 Increase the maximum read buffer queue size
•net.core.wmem_max = 16777216 Increase the maximum write buffer queue size
•net.ipv4.tcp_rmem = 4096 87380 16777216
•net.ipv4.tcp_wmem = 4096 65536 16777216
•net.ipv4.[……]
Read more
原理,定期使用命令输出ssd健康状况到文件内,然后编写脚本进行检查。
监控单盘
*/5 * * * * /usr/sbin/smartctl -A /dev/sdb
如果是监控多块盘(做了raid)
安装部署如下
Lib_Utils-1.00-08.noarch.rpm
MegaCli-8.01.06-1.i386.rpm
smartmontools-5.40.tar.gz
安装步骤:
1. rpm -Uvh Lib_Utils-1.00-08.noarch.rpm
2. rpm -Uvh MegaCli-8.01.06-1.i386.rpm
3. tar zxvf smartmontools-5.40.tar.gz
cd smartmontools-5.40
./configure –with-selinux=no && make -j 10 && make install
4. 获取SSD的Device ID
/opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -aALL 检查输出[……]
Read more
ssd测试指引
最近测试了几款SSD设备,写一些指引,以后大家测试ssd的时候可以参考下:
1. 测试要尽可能避免cache的影响. 任何磁盘产品,在碰到io瓶颈的时候,都不可能快,这个时候才是真正的磁盘的性能. 如果我们在测试一些nosql产品的时候,发现有非常高的吞吐率,那么就要思考,是什么其他因素影响了测试结果,网上的许多测评就是陷入了这么一个误区,注意内存数据库和磁盘数据库的本质区别,即使是磁盘数据库实现了一定的缓存功能;
2. 随着时间增长,SSD盘可能有碎片,空间占用上升,这个时候性能会下降,所以需要较长时间的测试(我每种测试模型会测试>1小时) ,因为可能有GC的影响,需要考虑进去. 且需要测试不同空间占用比下的性能. 现实中,由于数据库一般在90%以上就必须考虑扩容,所以对于企业级应用,可以测试下几乎写满(>90%)情况下的性能, 此时的性能更参考价值.
3. 由于Raid卡,IO控制器,缓存等因素也会影响到SSD盘的性能. 需要留意此点. 老外有时使用一些高端的Raid卡,而国内估计一般是中低端;
4. 一般可测试raid5和rai[……]
Read more
nr_requests512 增大队列长度default 128
read_ahead_kb16 减少预读default 128
io调度:deadline
InnoDB_flush_method=O_DIRECT
raid write Policy = WRBACK
Read Policy = NORMAL — Normal: This option disables the read ahead capability. This option is the default.官方MegaRAID_51530-00_RevF.pdf文档
Cache Policy = DirectIO
磁盘cache:一般情况下,如果使用RAID,系统会默认关闭磁盘的cache,也可以用命令强制关闭。
另外,可以判断下是否你的磁盘没有得到充分利用。
判断在多磁盘阵列下,是否是序列化执行IO的,这样没有充分发挥磁盘并行IO的威力,可能软件层有问题。
Formula for detecting serialization: ([……]
Read more
veritas在unix solaris下的安装(客户端)[……]
Read more