
这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。
命令的输出分别表示1分钟、5分钟、15分钟的平均负载情况。通过这三个数据,可以了解服务器负载是在趋于紧张还是趋于缓解。如果1分钟平均负载很高,而15分钟平均负载很低,说明服务器正在命令高负载情况,需要进一步排查CPU资源都消耗在了哪里。反之,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是CPU资源紧张时刻已经过去。
上面例子中的输出,可以看见最近1分钟的平均负载非常高,且远高于最近15分钟负载,因此我们需要继续排查当前系统中有什么进程消耗了大量的资源。可以通过下文将会介绍的vmstat、mpstat等命令进一步排查。
二、dmesg命令
该命令会输出系统日志的最后10行。示例中的输出,可以看见一次内核的oom kill和一次TCP丢包。这些日志可以帮助排查性能问题。千万不要忘了这一步。
三、vmstat命令
vmstat(8) 命令,每行会输出一些系统核心指标,这些指标可以让我们更详细的了解系统状态。后面跟的参数1,表示每秒输出一次统计信息,表头提示了每一列的含义,这几介绍一些和性能调优相关的列:
r:等待在CPU资源的进程数。这个数据比平均负载更加能够体现CPU负载情况,数据中不包含等待IO的进程。如果这个数值大于机器CPU核数,那么机器的CPU资源已经饱和。
free:系统可用内存数(以千字节为单位),如果剩余内存不足,也会导致系统性能问题。下文介绍到的free命令,可以更详细的了解系统内存的使用情况。
si,so:交换区写入和读取的数量。如果这个数据不为0,说明系统已经在使用交换区(swap),机器物理内存已经不足。
us, sy, id, wa, st:这些都代表了CPU时间的消耗,它们分别表示用户时间(user)、系统(内核)时间(sys)、空闲时间(idle)、IO等待时间(wait)和被偷走的时间(stolen,一般被其他虚拟机消耗)。
上述这些CPU时间,可以让我们很快了解CPU是否出于繁忙状态。一般情况下,如果用户时间和系统时间相加非常大,CPU出于忙于执行指令。如果IO等待时间很长,那么系统的瓶颈可能在磁盘IO。
示例命令的输出可以看见,大量CPU时间消耗在用户态,也就是用户应用程序消耗了CPU时间。这不一定是性能问题,需要结合r队列,一起分析。
四、mpstat命令
该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。
五、pidstat命令
pidstat命令输出进程的CPU占用率,该命令会持续输出,并且不会覆盖之前的数据,可以方便观察系统动态。如上的输出,可以看见两个JAVA进程占用了将近1600%的CPU时间,既消耗了大约16个CPU核心的运算资源。
六、iostat命令
r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
await:IO *** 作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际 *** 作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
%util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO *** 作平均等待时间)。如果到达100%,说明硬件设备已经饱和。
如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。
七、free命令
free命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数。需要注意的是,第二行-/+ buffers/cache,看上去缓存占用了大量内存空间。
这是Linux系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。因此,这部分内存一般也被当成是可用内存。
如果可用内存非常少,系统可能会动用交换区(如果配置了的话),这样会增加IO开销(可以在iostat命令中提现),降低系统性能。
八、sar命令
sar命令在这里可以查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。如示例输出中,eth0网卡设备,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,没有达到1Gbit/sec的硬件上限。
sar命令在这里用于查看TCP连接状态,其中包括:
active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;
passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;
retrans/s:每秒TCP重传数量;
TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压
九、top命令
top命令包含了前面好几个命令的检查的内容。比如系统负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。因此通过这个命令,可以相对全面的查看系统负载的来源。同时,top命令支持排序,可以按照不同的列排序,方便查找出诸如内存占用最多的进程、CPU占用率最高的进程等。
但是,top命令相对于前面一些命令,输出是一个瞬间值,如果不持续盯着,可能会错过一些线索。这时可能需要暂停top命令刷新,来记录和比对数据。MZD与一般文件服务器调试方法区别不大,但是规范化的调试流程是保证无盘服务器调试质量的依据,直接体现出公司的专业形象,直接影响到网吧系统的稳定、速度和安全,关系到网吧老板的投资信心,所以说按照无盘服务器调试流程 *** 作是公司的强制技术标准。
无盘服务器调试步骤分为硬件检查、硬件组装、软件组装和调试。
一、 硬件检测与拼装:
赛天服务器分为标配件和选配件,标配件包括机电、主板、CPU、内存以及阵列卡;选配件基本上就是硬盘了。
1 服务器标配件检查,新服务器开机箱首先检查CPU风扇是否上好,是否松动,内存是否插好,机箱是否有伤痕,都正常后,通电检查是否能点亮。检查完成后请填写服务器安装调试派工单的配件签收栏。
2 服务器选配件(硬盘)的检查:MZD系统采用的硬盘分别为:系统注册IDE盘、交换区磁盘和游戏区磁盘,其中交换区和游戏区要进行组阵。公司常用阵列卡型号分别为39320和21320,下面介绍两种阵列的组阵方法:
3 39320的组阵方法:启动机器BIOS自检到检查阵列卡,按CTRL+A后进入阵列卡设置界面,39320有单通和双通区分,设置方法都一样,以双通为例,任意选择一个通道回车后有3个选择 第一个Configure/View SCSI Controller Settings是阵列卡基本设置,一般设置为默认;第二个Configure/View HostRAIDSettings为阵列组阵菜单,选择后阵列卡会对接在此通道的SCSI盘进行检测,检测完后会出现你所接上的磁盘,上面菜单分别为:Create(组阵),按字母C后会出现组阵对话框,39320阵列可以组阵为RAID-0、RAID-1、RAID-10,如下图: 我们只介绍做RAID0的方法,回车后选择你需要组阵的磁盘按空格键,当盘后面有“X”标记时, 证明已经选择好,按回车后设置Select stripe size选择64-KB然后所有提示Yes或No的地方都选择Yes就行了;Delete(删除阵列),适用想对阵列进行删除时,前提当然是要有已建阵列后才能使用,平常为灰色字样,选择组好的阵列回车后, Delete为白色,按字母D键后提示YES或NO(是否删除阵列)选择YES,阵列就完全删除了;第三个是SCSI Disk Utilities为检查磁盘菜单,选择后阵列卡同样会对接在此通道上的SCSI盘进行检测,这里可以对阵列盘进行FORMAT(SCSI盘的低级格式化), 方法为,选择磁盘后回车“Format Disk”回车后就开始对选择磁盘进行格式化,屏幕上为红色闪烁警告字样, 时间比较长(73G盘一般为半小时),当字样消失时,证明已经格式完成(注:在格式化过程中千万别让机器死机或断电,否则可能下次进阵列检查不到此磁盘),“Verify Disk Media”为磁盘坏道检测,回车后直接选YES。
1 21320的组阵方法:启动机器BIOS自检到检查阵列卡,按CTRL+C后进入阵列设置界面,第一个菜单“Device Properties”是检查磁盘选项;第二个菜单“RAID Properties”为设置选项,回车后将你需要做成阵列的盘选定“Array Disk”YES后按ESC后选择“Save changesthen exit this menu”保存退出,这样一组阵列就做好了,如果需要进去看下是否已经好,可以再进入此通道“RAID Properties”选择后可以看到组阵信息,当然需要删除阵列的话可以在此菜单下面选者“Delete Array”;第三个菜单是“Restore Defaults”,这是对阵列卡信息的设置进行初始化的选项(注:此选项不能恢复阵列组阵信息)。
2 每组磁盘组阵都需要用hdtach中的HDTune(测试坏块)、hdtest(测试整体读写速度)、以及EZDV TEST工具(重点测试写速度)进行检测,如果阵列磁盘出现速度慢或者坏道问题,需要把阵列拆除后单盘测试,检查出那一个或者多个盘读写慢,需要用阵列工具的FORMAT格式化盘。测试完毕请填写服务器安装调试种的硬件部分内容
3 磁盘安装:所有赛天服务器机箱都有托架,检测好的磁盘都需要安装托架后安装到机箱上去,接好电源线和数据线。
三、 软件的安装和调试
1、 服务器系统安装:服务器安装系统一般是安装在IDE盘上,如果系统需要做到阵列上的话,需要用工具盘安装好系统并安装阵列卡驱动后ghost到阵列磁盘的分区上。
2 挂工作盘与单盘,用工作盘启动系统,对系统盘进行分区,先分一个C分区10G,格式化成NTFS并激活,其它分区详见下面磁盘分区。
3 采用GHOST的PARTION FROM IMAGE方法从工作盘上恢复服务器对应的2003系统包或者PNP包,然后用FDISK /CMBR磁盘参数方法修复可能由于GHOST产生的分区错误。
4 单盘启动恢复好的系统,安装需要补充的部分驱动;进行系统相关设置及优化(关掉网卡中断截流、屏保,多余的服务,系统还原等)。
5 安装MAXDOS方便做备份和日后恢复系统。
6 服务器机器名字为MZDSERVER-,IP分配为MZD登陆器IP为220(不管只是登陆服务器还是又做无盘主服务器),多服务器分配221、222。。。收费机250,服务器252等
7 服务器磁盘分区规划
逻辑盘 分区名 容量 卷标 内容
系统单盘 C盘 10G win2003 服务器系统
K盘 30G bak 备份
T盘 40G tools MZDBT文件及相关工具
交换阵列 E盘 60G WKS 客户交换目录
U盘 剩下 UDO 还原点目录
游戏阵列 M盘 全部 IMG 系统、游戏镜象包
8 服务器安全设置:
9 关闭SERVER服务(网络共享),禁止GUEST账号。
10 统一设置Administrator用户密码为cdsz-网吧名称拼音第一个字母-2003,另外开一个MZDBT账号(方便远程连接)隶属于管理员Administrator。
11 设置远程桌面连接账号:“允许用户远程连接到此计算机”,同时把3389端口改成8901、8902、8903。。。。(修改方法:进入注册表编辑HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp→“PortNumber”选择十进制“数值数据”填写需要改变的端口; 或者在公司FTP规范化-服务器-注册表下载“端口reg”直接运行。
12 安装防火墙软件和360安全卫士(安全卫士必须更新到最新和开启所有保护),防火墙软件必须安装能自动更新软件,建议安装诺盾10。360软件官方下载最新,诺盾10下载地址:公司FTP规范化\服务器\病毒。诺盾10安装完后设置文件排除方法如下:设置界面-快速扫描-选项-排除文件和文件夹-排除-扩展名设置(EPE)-确定-保存;启动扫描-自动生成的快捷扫描-编辑-选项-排除文件和文件夹-扩展名(EPE)-确定-保存。如下图:
13 IE安全权限设置成最高,最好设置成不能下载(应老板要求)
1 下载MZD服务端文件,解压后释放到E盘根目录下,完整的软件应包含MZDEXE和TOOLS(客户端配置工具)文件夹。
2 双击MZDEXE运行MZD文件,对于WINDOWS SP1系统如果无法正常运行,请按照以下步骤 *** 作:
一、数据执行保护设置为“只为关键的Windows程序和服务启用数据保护”
3 注册MZD:MZD图标处点重新注册,输入代理商编号510100与网吧的密码(向公司后台管理人员咨询)。
4 全局设置:设置MZD密码,该密码为内部通讯密码,多服的使用与MZDBT的使用都需要此密码,统一设定为:CDSZ2003。
设置还原点:个数设置为3到5个。
还原目录的设置:必须设置成一个有效盘符或者目录,设置成空的会出现超级用户不能启动的情况。
自动添加的设置:调试的时候都应该打开,如果网吧是多台服务器分开注册,当本服务器机器正确编号完成后应该关闭,以免其他服机器误登陆。
5 磁盘设置:
工作路径的设置:工作路径也就是交换区,存放客户机包的FIX文件的地方,要求读和写速度比较快的分区,E盘(WKS)分区上。
磁盘IP的设置:如果是单服,此IP可以设置成本机IP:127001,如果是多服,需要设置成包文件所在服务器IP。
读缓存设置:服务器2G内存的情况下,如果机器超过10台用此包,建议缓存设置120-180之间,推荐值150,注:游戏包不需要设置缓存。
其他地方的设置:正常情况下需要把允许还原和允许清空勾上,方便VIP用户调试时手动进行清空或还原;机器正常使用中自动还原和自动清空必须勾选,它决定启动机器是否自动把FIX文件进行还原和清空,不勾选可能会导致客户机启动蓝屏等故障。
调试完成后,不用的IMG包文件都需要剪切到盘的第2层目录下(不管是备份还是曾经用过的包),以便日后检查方便,包文件太多,也有可能误指工作包引来不必要的麻烦。
6 系统设置:
设置名称可以设置成此配置的特征,比如说放置区域、主板型号、显卡型号等等。
磁盘设置上系统盘必须是系统IMG包设置成的磁盘,数据磁盘也就是游戏、数据等磁盘,没多要求,606核心可以支持3个数据盘。
启动顺序,调试系统期间由于需要硬盘上传数据,设置的时候应该设置成本地硬盘,正常使用中应该设置成虚拟硬盘。
起始IP设置:MZD系统IP分配为自动分配,但是也是有规律的,都是IP=起始IP+机器号数。
网关设置:局域网内网网关地址。
DNS设置:可以设置两组本地常用DNS。
起始编号设置、编号长度、前缀、后缀都属于编号,视网吧要求设置。
分辨率设置:基本设置为普屏显示器设置1024768,16B,75Hz;宽屏显示器设置1440900,16B,75Hz。
菜单/网卡设置:
网卡IP,单网卡的服务器不需要设置,AUTO就可以了,如果是多网卡时,需要设置主网卡的IP(服务器上设置主网卡子网地址为25525500,TCP/IP中WINS禁用TCP/IP上的NETBIOS)
菜单选项可以设置最多4个菜单,启动客户机可以选择需要的选项,时间设置成O秒会显示MZD启动画面,不能进行选择,设置成1秒启动速度应该是最快的,如果需要客户任意选择,最好设置成5秒以上。
编号范围设置可以设置连续和断续的机器编号,断续机器中间用“,”隔开。如果机器编号超过所有设置范围,那么自动转入第一个菜单配置
8 磁盘维护设置:
新建/扩容:可以建立需要的IMG包,方法为“文件名”输入你建包的名字(带路径),“大小”设置容量单位MB,再点下“新建/扩容”就可以了。(注:系统包一般不超过4000MB)扩容:可以将之前的包的容量扩大,方法是,点到之前磁盘,设置“大小”为你所需要的容量,再点“新建/扩容”提示成功就行了。
生成新磁盘,是上传合并时候需要生成另外一个新磁盘,不能用之前名字。
直接更新,也是上传合并时候用,不过他和生成新磁盘的区别是,直接用以前的包文件,直接合并而成(这个有一定的风险,必须清除缓存后再 *** 作),合并速度比较快。
备份更新,这是以前版本没有的,现在比较常用的方法,更新完后生成文件名UDO文件(在UDO目录下面),优点是安全和速度快,同样需要更新前清除缓存。
还原磁盘,是备份更新出现问题后,方便还原的辅助,建议不要使用此方法还原游戏包文件。
9 补充部分: *** 作员管理:用户名Admin千万别去改,密码就是设置进入MZD设置界面的密码,默认是注册磁盘序列号,权限属于Admin也别去改动;设置超级用户登录的方法:工作站管理里面设置VIP,添加Admin用户,类型设置为“VIP”,菜单名称设置为让那部分机器能使用超级用户。
五、服务器其他软件安装:
1、下载MZDBT软件到T盘,其中包含MZDBT自动更新软件、MZDIMG开包软件和MZDTOOLS软件,添加开包批处理,自动绑定MAC地址批处理与自动运行MZDBT批处理到启动组, 并创建快捷方式到桌面。各软件设置方法如下:
2 MZDBT自动更新软件详细设置见公司《MZD自动更新平台安装调试步骤》。
3 MZDIMG开包软件的设置,都是采用批处理,建立“开包bat”-编辑-输入内容:T:\MZDIMGEXE G: M:\网络游戏IMG,如果有多网络包用同样的方法换行填写保存就可以了,如下图:
4 自动MAC地址邦定的方法,用MZDTOOLS软件设置快捷,目标路径执行文件空格后跟E:\MZDINI,如下图:
5 娱乐平台设置:游戏包开包后,从网络游戏盘中将“娱乐平台\娱乐平台管理端”目录复制到T盘拖几个服务端文件快捷到服务器上,管理服务具体设置方法详见公司《MZD自动更新平台安装调试步骤》。
6服务器备份用工具软件MAXDOS安装,下载地址公司FTP-标准化-服务器-TOOLS下面,密码设置一般为空,时间设置为2秒。
六、服务器的备份:
1 驱动备份:K盘BAK建立MZDTOOLS目录再建“驱动BAK”目录,把所有本服务器驱动都备份到该目录下。
2 工具备份:硬盘测试工具、远程工具、MZDBT所有工具、杀毒软件工具、系统补丁都放到MZDTOOLS根下面。
3 服务器系统备份:用MAXDOS或者一键还原工具做备份名字为win2003GH放入MZDTOOLS\sysbak\。
4 MZD核心文件备份:K盘建立MZDBAK目录,再建立日期目录(比如说12月20号做动过INI要做备份就建立1220目录)后将MZDEXE和MZDINI文件备份到该目录下,用RAR工具压缩。
路由开放服务器远程端口和更新端口26500端口、设置客户机邦定、病毒防御、流量控制后备份设置同样放到K盘MZDTOOLS目录下。
1、首先是对于CPU的说明
服务器CPU性能参数主要信息可以通过查看 /proc/cpuinfo 获得。具体查看指令及效果如下:
显示这台服务器上有2个物理CPU
显示这台服务器的物理核数为16个
显示运行模式为64位
显示为Intel(R) Xeon(R) Gold 6226R CPU @ 290GHz
命令:
显示此服务器的线程数为64
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态如果在前台执行该命令,它将独占前台,直到用户终止该程序为止比较准确的说,top命令提供了实时的对系统处理器的状态监视它将显示系统中CPU最“敏感”的任务列表该命令可以按CPU使用内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定
1.命令格式:
top [参数]
2.命令功能:
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
3.命令参数:
-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数
4.使用实例:
实例1:通过 Top 命令显示进程信息
命令:
统计信息区:
前五行是当前系统情况整体的统计信息区。下面我们看每一行信息的具体意义。
第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:
10:38:58 — 当前系统时间
up 39 days, 19:47 — 系统已经运行了39天19小时47分钟(在这期间系统没有重启过的吆!)
1 users — 当前有1个用户登录系统
load average: 000, 000, 000 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行,Tasks — 任务(进程),具体信息说明如下:
系统现在共有769个进程,其中处于运行中的有1个,463个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行,cpu状态信息,具体属性说明如下:
00%us — 用户空间占用CPU的百分比。
00% sy — 内核空间占用CPU的百分比。
00% ni — 改变过优先级的进程占用CPU的百分比
1000% id — 空闲CPU百分比
00% wa — IO等待占用CPU的百分比
00% hi — 硬中断(Hardware IRQ)占用CPU的百分比
00% si — 软中断(Software Interrupts)占用CPU的百分比
备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!
第四行,内存状态,具体信息如下:
65600012k total — 物理内存总量
1785256k used — 使用中的内存总量
62385920k free — 空闲内存总量
1428836k buffers — 缓存的内存量
第五行,swap交换分区信息,具体信息说明如下:
2097148k total — 交换区总量
918340k used — 使用的交换区总量
1178808k free — 空闲交换区总量
备注:
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第六行,空行。
第七行以下:各进程(任务)的状态监控,项目列信息说明如下:
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 — 进程名称(命令名/命令行)
或者通过 free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
命令:
显示我当前的服务器的物理内存是62G,其中交换内存是2个G,一共剩余是60G的
三、查看Linux内核当前的系统版本号
命令:
显示的当前的服务器Linux内核是Ubuntu系统,版本号是18046
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)