关于线上优化服务器视频笔记1-----调优线上服务器

linux服务器调优的经验

目录:

1、系统故障排除思路

重视报错信息

永远不要忘记日志文件

分析、定位、解决问题

2、影响linux性能的因素

服务器硬件因素

操作系统的相关因素

程序因素

3、系统性能优化工具

Cpu性能优化工具 vmstat,iosta,sar

内存性能检测工具 free,top,sar,pidstat

磁盘性能评估工具 iostat,sar

网络性能分析工具 ping,mtr,netstat

4、系统性能分析与标准

5、性能调优的思路与技巧分享

几个故障鼓励案例和性能优化案例

Su命令切换用户导致的问题

磁盘突然变成只读怎么处理

基于动、静态网站的优化案例

一、Linux故障排除思路

1、重视报错提示信息

每个错误的出现,都是给出错误提示信息,一般情况下这个提示基本定位了问题所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。

2、永远不要忘记日志文件

日志排查问题的第一思路,一定要学会查看日志的习惯。

系统日志:dmesg、/var/log/messages、/var/log/secure(登录日志文件)

应用日志:

Apache:$APACHE_BASE/logs/error_log $APACHE_BASE/logs/access_log

Nginx:$NGINX_BASE/logs/error_log $NGINX_BASE/logs/access_log

Tomcat: $TOMCAT_BASE/logs/catalina.out

3、分析,定位问题,解决问题

综合分析过程,要以日志为导向,配合应用环境,根据报错信息,排除故障。

4、网络故障排除思路

(1)网络硬件传输问题

(2)检查网卡是否能正常工作,可以从网卡是否正常加载,网卡IP设置是否正确

(3)检查DNS是否设定正确

(4)服务是否正常工作

(5)访问权限是否打开(iptables/selinux)

(6)局域网主机之间联机是否正常

二、影响Linux性能各种因素

1、系统硬件资源

(1)CPU

如何判断多核CPU与超线程

消耗CPU的业务:动态web服务、mail服务

(2)内存

物理内存与swap的取舍

选择64位与Linux系统

消耗内存的业务:内存数据库(redis/hbase/mongdb)

(3)磁盘IO

RAID 技术(RAID 0/1/5/01/10)

SSD 磁盘

消耗磁盘的业务:数据库服务器

(4)网络带宽

网卡/交换机的选择

操作系统的双网卡绑定

消耗带宽的业务:hadoop平台、视频业务的平台

2、操作系统相关资源

(1)系统安装优化

磁盘分区、RAID设置、swap设置

(2)内核参数优化

Ulimit -n(最大打开文件数)

Ulimit -u (最大用户数)

(3)文件系统优化

Ext2:linux下标准文件系统,无日志记录(inode)功能

Ext3:在ext2基础上增加了日志记录功能(inode),仅支持3200个子目录

Ext4:在ext3的后续版本、linux2.6.28内核开始支持,无限子目录支持,快速fsck

Xfs:高性能文件系统,linux3.10内核开始默认支持

建议:

读操作频繁,同时小文件众多的应用,首选ext4文件系统,接下来是xfs、ext3

写操作频繁的应用,首选是xfs,接下来依次是ext4和ext3

对性能要求不高、数据安全要求不高的业务、ext3是比较好的选择

三、Linux性能优化工具

1、cpu性能评估工具

(1)vmstat(系统自带工具)

利用vmstat命令可以对操作系统的内存信息、进程状态、CPU活动等

常用方式:vmstat  3 5

表示每3秒更新一次输出信息,统计5秒后停止输出

(2)iostat(需要安装sysstat工具包)

Iostat是I/O statistics(输入/输出统计)的缩写,主要的功能是对系统的磁盘I/O操作进行监视

常用方式:iostat -c 3 5

其中,-c表示显示CPU的使用情况,-d:显示磁盘的使用情况

(3)uptime命令

Uptime是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况,输出的信息依次为:系统现在的时间、系统上次开机到现在运行了多长时间、系统目前有多少登录用户、系统在一分钟内、五分钟内、十五分钟内的平均负载。

2、内存性能评估

(1)free命令

Free命令是监控linux内存使用状况最常用的指令

常见用法: free -m

(2)sar/pidstat

此两个命令主要用于监控全部或指定进程占用系统的情况,如CPU,内存、设备IO。

此三个共用参数:-(获取CPU状态)、-r(获取内存状态)、-d(获取磁盘)

常用组合:

Sar -u 3 获取cpu3秒内的状态

Pidstat -r -p 1 3获取内存3秒内的状态(获取指定的进程id)

3、网络性能评估

(1)ping命令

(2)Netstat 命令

Netstat -i(查看网络接口情况)

Netstat -r(查看路由情况)

(3)mtr/traceroute 命令

跟踪网络路由状态,推荐使用mtr,动态跟踪网络路由,用于排除网络问题十分方便

四、系统性能分析标准

影响性能因素评判标准

好坏 糟糕

CPUuser%+sys%<70%user%+sys%=85user%+sys%>=90

内存Swap IN(si)=0Per CPU with 10 page/sMoreSwap In & Swap Out

Swap Out(so)=0

磁盘iowait%<20%iowait%=35%iowait%>=50

五、几个故障处理和优化案例

1、系统ing无法执行su操作

问题现象:

Su : warning :cannot change directory to /home/people:Permission denied

Su:/bin/bash:Permission denied

解决思路:

从上面错误提示可知是权限出现了问题,那么可以从权限入手进行排查,基本思路如下:

用户目录/home/people权限问题

Su 程序执行权限问题  ll /bin/su

程序依赖的共享库权限的问题 ldd /bin/su

Selinux问题导致 getentforce

系统根空间问题

最终解决方法:

发现根目录的权限问题

(注意解决思路)

2、”Read-only file system” 问题分析与解决

问题现象:网站无法添加内容

解决思路:

网站程序可能出现问题

磁盘出现问题

文件系统问题

解决方法:

卸载磁盘分区,用fsck命令修复磁盘分区

3、基于动态、静态内容结合的网站优化案例

硬件:DELL R710 3台,32GB内存、CPU 2颗8核、磁盘 SATA 600GB+2TB

软件环境:nginx+tomcat 架构,通过nginx做负载均衡

现象描述:平时访问量小时,网站正常,当访问量稍大时,网站访问很慢,网站搞活动时,基本处于无法打开状态,而nginx服务器带宽占最高在30M左右,后端2个tomcat服务器占用带宽占用也在30M左右

分析问题:

(1)硬件、系统方面

(2)网络方面

(3)软件架构方面

(4)程序配置方面

步骤:分发用户请求-网站动静资源分离

解决问题:

(2) 网站动、静态分离

Location ~*\.(gif|jpg|png|js|css)${

Root /data/static/images/ROOT;

}

Nginx 中的location匹配规则

首先匹配=,其次匹配^~,然后是按文件中顺序的正则匹配,最后是交给/通用匹配。当匹配成功时候,停止匹配,按当前匹配规则处理请求

(3)Tomcat JVM参数优化

优化参数:

-server -Xms3550m -Xmx3550m -Xmn1g -XX:PermSize=256m -XX:MaxPermSize=512m

整个堆内存大小 = 年轻代大小 + 年老代大小 + 持久代大小

-Xms3550m:设置JVM最大内存3550m

-Xmx3550m:设置JVM初始堆内存3550M

-Xmn2g:设置堆内存年轻代大小为2G.。整个堆内存大小 = 年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年轻待大小。此值对系统性能影响较大

-XX:PermSize=256m :设置堆内存持久代初始值为256m

-XX:MaxPermSize=512m:设置持久代最大值为512m

学习心得:

对于调优线上服务器的原则就是结合业务的需求,对发生的问题要结合日志解决问题,查找根源发生的问题。解决问题时需要注重思路的养成,方便以后处理相关类似问题。

时间: 2024-10-24 06:13:50

关于线上优化服务器视频笔记1-----调优线上服务器的相关文章

《Java程序性能优化》学习笔记 Ⅳ JVM调优

第五章 JVM调优5.1 Java虚拟机内存模型1.JVM虚拟机将其内存数据分为程序计数器.虚拟机栈,本地方法栈,Java堆,和方法去等部分.5.2 JVM内存分配参数5.3 垃圾收集基础5.4 常用调优案例和方法5.5 使用JVM参数5.6 实战JVM调优 <Java程序性能优化>学习笔记 Ⅳ JVM调优

关于线上优化服务器视频笔记1-----快速部署线上服务器

线上linux服务器优化经验 2.线上服务器网络安全配置与系统登录安全配置 2.1.授权用户登录与sudo的设定 /etc/sudoers 文件 <user list> <host list> = <operator list> <tag list> <command list> 常见配置: Mbb ALL=(ALL) NOPASSWD:ALL 2.2.ssh登陆登陆经验 备份sshd配置文件 Cp /etc/ssh/sshd_config /e

项目总结50:Linux服务器上web项目Java项目性能调优

项目总结50:Linux服务器上web项目Java项目性能调优 最近上线的电商项目,发现非常卡,用户体验非常差,折腾了好久之后,也逐渐找到原因,并针对原因解决方案,先整理总结. 项目基本情况: 1-使用阿里ECS.OSS等一系列相关服务: 2-用户总量1W+,日活量500+ 3-电商项目,有APP.小程序.管理平台三个模块,其中接口150+ 4-项目使用SSM框架: 5-项目tomcat服务,数据库Mysql,Redis放在一个同一个服务器上: 问题表现: 1-接口反应非常慢,导致APP和小程序

Android内存分析和调优(上)

Android内存分析和调优(上) Android内存分析工具(四):adb命令

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显得非常重要了,选用什么配置的服务器.如何对服务器进行调优.如何从服务器监控中发现程序的性能问题. 如何判断服务器的瓶颈在哪里等 就成为了服务器性能监控和分析时重点需要去解决的问题了. 1     服务器的性能监控和分析 1.1      Linux服务器的性能指标监控和分析 1.1.1       通过vmstat深挖服务器的性能问题 1.1.2       如何通过mpstat 分析服务器的性能指标

教你录制高清桌面教学视频并发布到优酷上

作者:邵发 日期:2015/3/19 本文讲解如何录制一个桌面教学视频,以高清/超清方式发布到优酷上.作者本人经常发布教学视频,有充分的经验,大家本文的步骤操作,肯定可以成功.可以到这里看我发布的视频的样例:样例一 更多样例 主要分为以下几步: (1) 录制教学视频 (2) 转换视频为优酷需要的格式 (3) 发布到优酷 一.录制教学视频 1.1 下载安装录屏软件 作者使用的录屏软件为"极星桌面录制大师",下载地址为:http://www.afanihao.cn/software/ (点

JVM层GC调优(上)

JVM内存结构简介(jdk1.8) JVM层的GC调优是生产环境上必不可少的一个环节,因为我们需要确定这个进程可以占用多少内存,以及设定一些参数的阀值.以此来优化项目的性能和提高可用性,而且这也是在面试中经常会被问到的问题. 想要进行GC调优,我们首先需要简单了解下JVM的内存结构,Java虚拟机的规范文档如下: https://docs.oracle.com/javase/specs/jvms/se8/html/index.html 在介绍JVM内存结构之前,我们需要先知道运行时数据区这样的一

MySQL 优化之 Linux系统层面调优

http://www.cnblogs.com/digdeep/p/4885948.html MySQL 一般运行于Linux系统中.对于MySQL的调优一般分为Linux操作系统层面的调优和MySQL层面的调优(当然还有架构层面.业务层面.应用程序层面的调优).操作系统主要是管理和分配硬件资源,所以其实系统层面的调优包括了硬件的调优,也就是调整硬件参数.Linux系统层面的调优一般分为 CPU的调优.内存的调优.磁盘的调优.网络的调优.Linux后台service调优等等. 1. CPU 调优

【Java/Android性能优化1】Android性能调优

本文参考:http://www.trinea.cn/android/android-performance-demo/ 本文主要分享自己在appstore项目中的性能调优点,包括同步改异步.缓存.Layout优化.数据库优化.算法优化.延迟执行等. 一.性能瓶颈点 整个页面主要由6个Page的ViewPager,每个Page为一个GridView,GridView一屏大概显示4*4的item信息(本文最后有附图).由于网络数据获取较多且随时需要保持页面内app下载进度及状态,所以出现以下性能问题