没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1/26
性能优化
了解调优
调优的目的:
1. 根据不同的角色调优的方法是不一样的
2. 找到性能瓶颈以及缓解这个瓶颈(CPU,内存,IO调度、网络、使用的应用程序)
3. 通常做两种调优:
response time: Web服务器,用户感受度好
throughput: 文件服务器,拷贝的速度
调优需要掌握的技能:
1. 必须了解硬件和软件
2. 能够把所有的性能、指标量化,用数字说话
3. 设置一个正常期待值,比如将响应速度调到1.5秒
(企业版操作系统在出厂时已经调优,适用于普遍的应用,再根据个人的环境进行微调)
4. 建议有一定的开发能力
5. 如果想要更好的调优,让调优有艺术性,需要更多的经验的积累,从而有一定洞察力,调节时所给参数才最恰当
性能调优的效率问题:
业务级调优 尽量在业务级调,效果最明显,例如: 网站一定要使用Apache吗?
例如:将原有的调度器由LVS换成F5-BigIP
能否禁用一些不必要的服务如蓝牙、smart card,makewathis, updatadb
应用级调优 NFS,Samba,Apache、Nginx、MySQL、Oracle、LVS本身调优
对于日志的处理: 只要有日志产生,就会存盘fsync(),可以调整记录的日志等级或延
后日志写,
从而避免大量的I/O操作
kernel级调优 最后的希望,kernel调优具有普遍性
自上往下,效果越来越不明显
=================================================================================
获取硬件信息
获得硬件信息
=================================================================================
硬件方面,主要要调优的对象
CPU
Memory
Storage
Networking
获取硬件信息的命令
查看CPU:
RHEL7
lscpu,lscpu -p
查看硬件的顶级命令: 会读BIOS
dmidecode 直接查BIOS信息
dmidecode -t 0 type 0主要是硬件信息
查看服务器型号:dmidecode | grep 'Product Name'
查看主板的序列号:dmidecode |grep 'Serial Number'
查看系统序列号:dmidecode -s system-serial-number
查看cpu信息: 使用dmidecode -t 4
查看内存信息:dmidecode -t memory
查看最大支持内存数:dmidecode -t memory |grep "Maximum Capacity"
[root@SC4304 ~]# dmidecode -t 16
# dmidecode 2.11
# SMBIOS entry point at 0xb89a5000
2/26
SMBIOS 2.7 present.
Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 1536 GB
Error Information Handle: Not Provided
Number Of Devices: 24
从上面的信息我们可以看出:
内存插槽数:24个
最大扩展内存:1536G
单跟内存条最大:64G
但是,我们还必须查清这里的128G到底是16*8GB, 2*64GB还是其他?就是查看已使用的插槽数
如果是2*64GB,那么可以扩展到1536GB,但是如果插槽已经插满,无法扩展了:
1、查看内存槽数、哪个槽位插了内存,大小是多少
[root@SC4305 ~]# dmidecode|grep -A5 'Memory Device'|grep Size
3、查看槽位上内存的速率,没插就是unknown。
[root@SC4305 ~]# dmidecode|grep -A16 'Memory Device'|grep 'Speed'
查询硬盘信息
硬件信息
smartctl -a /dev/sda
lspci
如果要更详细的信息:lspci -v 或者 lspci -vv
lsusb
ethtool
cpu
取得CPU硬件信息
基本常识: 所有的存储类的设备
离CPU越近会越快,离CPU越远将越慢
离CPU越近存储的容量越小,离CPU越远存储的容量越大
离CPU越近的是CPU自己,CPU的寄存器。寄存器的时钟周期和CPU是一样的,CPU有多少HZ,寄存器的反应就有多快
离CPU稍远的:
L1,在CPU中,使用静态内存做的,工艺也非常复杂,比寄存器要慢
L2,使用的是动态高速内存
L3
Memory
Storage TB, PB
lscpu
[root@localhost ~]# lscpu -p
# The following is the parsable format, which can be fed to other
# programs. Each different item in every column has an unique ID
# starting from zero.
# CPU,Core,Socket,Node,,L1d,L1i,L2,L3
0,0,0,0,,0,0,0,0
1,1,0,0,,0,0,0,0
2,2,1,0,,1,1,1,1
3,3,1,0,,1,1,1,1
如:
3/26
CPU的相关指标:
# cat /proc/cpuinfo 物理的,核心的,超线程的?
# lscpu RHEL6支持
L1d cache 一级数据缓存
L1i cache 一级指令缓存
L2 二级缓存(L2是否共享?)
Thread(s) per core: 线程数为1,不支持超线程
Core(s) per socket: CPU核数
SMP(UMA)和NUMA架构
SMP(Symmetric Multi-Processor)
MCH: 内存控制芯片,即北桥
ICH: I/O控制芯片,即南桥,连接外设,硬盘,USB,慢速PCI总线设备
4/26
所谓对称多处理器结构,是指服务器中多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址
所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA:Uniform Memory Access)。对SMP服务器进行扩展的方式包括增加内存、
使用更快的CPU、增加CPU、扩充I/O(槽口数与总线数)以及添加更多的外部设备
缺点
SMP服务器的主要特征是共享,系统中所有资源(CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,那就
是它的扩展能力非常有限。对于SMP服务器而言,每一个共享的环节都可能造成SMP服务器扩展时的瓶颈,而最受限制的则是内存。由于每个
CPU必须通过相同的内存总线访问相同的内存资源,因此随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,
使 CPU性能的有效性大大降低。实验证明,SMP服务器CPU利用率最好的情况是2至4个CPU。
NUMA(Non-Uniform Memory Access)
IOH: I/O HUB,也可以叫北桥
NUMA 架构显著的特色是:内存划分成片,CPU访问本区的内存的时候,速度非常快
5/26
由于SMP在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术,NUMA就是这种努力下的结果之一。利用NUMA
技术,可以把几十个CPU(甚至上百个CPU)组合在一个服务器内。
NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通
过互联模块(如称为Crossbar Switch)进行连接和信息交互,因此每个CPU可以访问整个系统的内存(这是NUMA系统与MPP系统的重要差别)。显
然,访问本地内存的速度将远远高于访问远地内存(系统内其它节点的内存)的速度,这也是非一致存储访问NUMA的由来。由于这个特点,为
了更好地发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互。利用NUMA技术,可以较好地解决原来SMP系统的扩展
问题,在一个物理服务器内可以支持上百个CPU
缺点
NUMA技术同样有一定缺陷,由于访问远地内存的延时远远超过本地内存,因此当CPU数量增加时,系统性能无法线性增加。如HP公司发布
Superdome服务器时,曾公布了它与HP其它UNIX服务器的相对性能值,结果发现,64路CPU的Superdome (NUMA结构)的相对性能值是20,
而8路N4000(共享的SMP结构)的相对性能值是6.3。从这个结果可以看到,8倍数量的CPU换来的只是3倍性能的提升。
numa的陷阱的问题。现象是当你的服务器还有内存的时候,发现它已经在开始使用swap了,甚至已经导致机器出现停滞的现象。这个就有可
能是由于numa的限制,如果一个进程限制它只能使用自己的numa节点的内存,那么当自身numa node内存使用光之后,就不会去使用其他
numa node的内存了,会开始使用swap,甚至更糟的情况,机器没有设置swap的时候,可能会直接死机!所以你可以使用numactl --
interleave=all来取消numa node的限制。
NUMA相关的策略
1、每个进程(或线程)都会从父进程继承NUMA策略,并分配有一个优先node。如果NUMA策略允许的话,进程可以调用其他node上的资
源。
2、NUMA的CPU分配策略有cpunodebind、physcpubind。cpunodebind规定进程运行在某几个node之上,而physcpubind可以更加精细地规定
运行在哪些核上。
3、NUMA的内存分配策略有localalloc、preferred、membind、interleave。
localalloc规定进程从当前node上请求分配内存;
而preferred比较宽松地指定了一个推荐的node来获取内存,如果被推荐的node上没有足够内存,进程可以尝试别的node。
membind可以指定若干个node,进程只能从这些指定的node上请求分配内存。
interleave规定进程从指定的若干个node上以RR(Round Robin 轮询调度)算法交织地请求分配内存。
1.centos 安装支持numa命令
yum install numactl
2.验证系统是否支持numa
剩余25页未读,继续阅读
资源评论
machen_smiling
- 粉丝: 506
- 资源: 1958
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功