1. 写在前面

相关服务:香港云服务器租用

        服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上,很多网络服务都在服务器上运行,因此服务器性能的好坏决定了整个应用。服务器性能的好坏如何分辨?主要看以下几个指标:

(1)CPU(中央处理器)
独立服务器的CPU执行诸如服务网页、运行数据库查询或处理计算命令等指令。CPU和内核的数量会影响可执行多少个并发指令。CPU架构和功能也影响执行指令的速度,特别是在围绕这些功能设计程序的网站或应用。

(2)内存RAM(随机存取存储器)
服务器内存的大小会影响服务器处理命令的速度。处理更复杂和更多种命令时,需要更高的内存。例如,动态的电子商务网站、数据库服务器等,需要对数据库运行各种查询和检索,更大的内存将使您获得更高的性能优势。

(3)硬盘类型(如SATA,SDD)
服务器中的固态硬盘(SSD)比SATA硬盘驱动器提供更高的磁盘读/写速度,也称为输入/输出(I/O)性能。具有SSD读取和写入磁盘的服务器速度更快,但定价显著高于同等存储容量的SATA硬盘。

(4)硬盘存储空间
服务器的硬盘存储是本地数据库大小和文件(如图像)的本地存储的限制因素。配置RAID磁盘阵列可有效增加数据可靠性,增加读取/写入(I/O)性能,RAID需要两个以上单独的存储卷。存储还可以采取网络存储的形式,如NAS(网络连接存储)或SAN(存储区域网络)。

(5)带宽
带宽数据传输限制,指的是可以并发到您的服务器的数据量。服务器带宽价格一般较高,通常提供10M 、20M,100M等常用带宽。像并发视频流、游戏和大数据处理等工作任务都需要高带宽。

(6)可用性
服务器的高可用性(HA)可能指网络和电源可用性,这反映在托管服务提供商的维护正常运行时间的实际记录以及其SLA(服务级别协议)中,以保证一定的正常运行时间。HA还可以通过以系统中单独的主动地添加RAID配置引入冗余来实现可用性保障,在发生隔离故障的情况下进行故障转移。

(7)网络延迟
网络延迟是服务器和用户之间发送信息的延迟的毫秒。网络延迟的高低由服务器提供商决定,但受到服务器和用户之间的距离和网络质量的影响。如租用HK服务器为降低延迟,服务器供应商部署中国大陆连通香港地区的CN2专线,是目前中国大陆访问较快较稳的线路,可提供较低的延迟和较好的网络体验。

(1)(3)(5)(6)(7)我们没有办法决定,阿里云服务器已经决定了,我们只能通过在平时使用过程中定期检查一下系统负载,有没有垃圾进程,CPU、内存、硬盘占用率,过高则需要自行清理一下。

 2. Linux基本信息查看,CPU 、核数、线程数

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

window查看CPU参数:
在cmd命令中输入“systeminfo”,以下信息表示物理CPU有一个

###2、查看物理CPU数、CPU核心数、线程数
在cmd命令中输入“wmic”,然后在出现的新窗口中输入“cpu get *”。
NumberOfCores:表示CPU核心数
NumberOfLogicalProcessors:表示总逻辑CPU数

 
3  内存查看
3.1 查看内存使用情况
free -m命令会以MB形式现实内存使用情况。


 free -h 命令会自动选择合适的容量单位显示。 

total:内存总数

used:已经使用的内存数

free:空闲内存数

shared:多个进程共享的内存总额

- buffers/cache:(已用)的内存数,即used-buffers-cached

+ buffers/cache:(可用)的内存数,即free+buffers+cached

Buffer Cache用于针对磁盘块的读写;

对操作系统来说free/used是系统可用/占用的内存;

对应用程序来说-/+ buffers/cache是可用/占用内存,因为buffers/cache很快就会被使用。

 注:我们工作时候应该从应用角度来看(这台服务器看不到)。

free -g命令会以GB形式现实内存使用情况。

free -g
4 硬盘查看


4.1 查看硬盘及分区信息
fdisk -l

4.2 查看文件系统的磁盘空间占用情况
df -h

4.3 查看硬盘的I/O性能(每隔一秒显示一次,显示5次)
iostat主要用于监控系统设备的io负载情况,sostat首次运行时会显示自系统启动开始的各项统计信息,用户可以通过指定统计的次数和时间来获得所需的统计信息。

iostat -x 1 5


常关注的参数:

如%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
如idle小于70%,I/O的压力就比较大了,说明读取进程中有较多的wait。

4.4  查看linux系统中某目录的大小
 du -sh /root
如发现某个分区空间接近用完,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录,然后按照从大到小的顺序,找出系统中占用最多空间的前10个文件或目录: 

cd /home/cqfnenu/
 
du -cksh *|sort -rn|head -n 10


5  查看平均负载
有时候系统响应很慢,但又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待。

load average:平均负载

平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。

多核CPU的话,满负荷状态的数字为 "1.00 * CPU核数",即双核CPU为2.00,四核CPU为4.00。 

一般的进程需要消耗CPU、内存、磁盘I/O、网络I/O等资源,在这种情况下,平均负载就不是单独指的CPU使用情况。即内存、磁盘、网络等因素也可以影响系统的平均负载值。

5.1 查看load average 数据
# 下面几个命令都可以看到 load average
 
top 
 

 
 参数解释:

第一行:

16:26:45— 当前系统时间

up — 系统已经运行了多久

3 users — 当前有3个用户登录系统

load average: 0.16,0.11,0.09 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

根据经验:我们应该把重点放在5/15分钟的平均负载,因为1分钟的平均负载太频繁,一瞬间的高并发就会导致该值的大幅度改变。阿里云服务器有1个CPU,12个内核,满载的情况为12。5/15分钟的平均负载超过12就表示过载了,长期过载会影响服务器性能,偶尔过载没关系。

第二行:

Tasks — 任务(进程),系统现在共有223个进程,其中处于运行中的有1个,147个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态

0.5% us — 用户空间占用CPU的百分比。

0.3% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

99.3% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si — 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态

98998960 total — 物理内存总量

15485936 used — 使用中的内存总量

73611328 free — 空闲内存总量

9901696 buff/cache — 缓存的内存量

第五行:swap交换分区

969964 total — 交换区总量

0 used — 使用的交换区总量

969964 free — 空闲交换区总量

4231276k cached — 缓冲的交换区总量

第六行是空行

第七行以下:各进程(任务)的状态监控

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

uptime命令和w命令 ,个人觉得w命令比较友好,因为能看出是哪些账户在使用服务器。

 这里的 load average 的三个值分别指系统在最后 1/5/15分钟 的平均负载值。

根据经验:我们应该把重点放在5/15分钟的平均负载,因为1分钟的平均负载太频繁,一瞬间的高并发就会导致该值的大幅度改变。

其他参数:

top -d 2 代表2s刷新一次,默认是5s刷新一次

5.2 vmstat命令来判断系统是否繁忙

vmstat 2 3 每2s显示1次数据,显示3次


# procs
r:等待运行的进程数。
b:处在非中断睡眠状态的进程数。
w:被交换出去的可运行的进程数。
 
# memeory
swpd:虚拟内存使用情况,单位为KB。
free:空闲的内存,单位为KB。
buff:被用来作为缓存的内存数,单位为KB。
 
# swap
si:从磁盘交换到内存的交换页数量,单位为KB。
so:从内存交换到磁盘的交换页数量,单位为KB。
 
# io
bi:发送到块设备的块数,单位为KB。
bo:从块设备接受的块数,单位为KB。
 
# system
in:每秒的中断数,包括时钟中断。
cs:每秒的环境切换次数。
 
# cpu
按cpu的总使用百分比来显示。
us:cpu使用时间。
sy:cpu系统使用时间。
id:闲置时间。
 5.3 其他命令
查看内核版本号:
uname -a
 
简化命令:uname -r
 
查看系统是32位还是64位的:
file /sbin/init
 
查看发行版:
cat /etc/issue
或lsb_release -a
 
查看系统已载入的相关模块:
lsmod
 
查看pci设置:
lspci

iostat命令详解:

 

netstat参数: