`
zhang_ly520
  • 浏览: 162488 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux服务器优化调优笔记

阅读更多

++不使用atime属性,例需为/data设置notime,可修改/etc/fstab如下:
/dev/sdb1 /data ext3 noatime 0 0
#mount -o noatime,remount /dev/sdb1

++ext3 不执行任何形式的数据日志记录以提供最佳的 ext3 性能
添加data=writeback 于fstab,或在mount时加 -o data=writeback

++调整默认的同时可打开最大文件数以及i-节点数
# echo ‘8192′ > /proc/sys/fs/file-max
# echo ‘32768′ > /proc/sys/fs/inode-max
#加入rc.local
#一般最大打开文件数可设置为每4M物理内存256,即256M内存可设为16384,而最大的使用的i节点应是最大打开文件数目的3-4倍
#cat /proc/sys/fs/file-nr
共有三个值, 第一个是系统开机以来
总共打开的文件描述符的数量,第2个是总共的空闲的文件描述符的数量,第3个是最大能打开的文件描述符的数量

++修改内核共享内存限制为256M,默认是32M
echo 268435456 >/proc/sys/kernel/shmall
echo 268435456 >/proc/sys/kernel/shmmax

++禁止广播和ping入
echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

++sysctl一些优化
sysctl -w net.ipv4.ip_conntrack_max=655360
##解决messages suppressed报错问题
sysctl -w net.ipv4.neigh.default.gc_thresh3=4096
sysctl -w net.ipv4.neigh.default.gc_thresh2=2048
sysctl -w net.ipv4.neigh.default.gc_thresh1=1024
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=60
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=30
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=60
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1

++进程限制
ulimit -n 4096 # 将每个进程可以打开的文件数目加大到4096,缺省为1024
ulimit -m 4096 # 限制每个进程使用的内存数

++看IO数据
iostat -t 5 5
iostat -x
sar -d 2 20

++32位操作系统文件大小就是2G,for X86-64版本的EL4支持超过2G的文件

++ 相关限制调高
echo “xxxx” >/proc/sys/fs/file-max #整个系统所有可打开文件 总数的限制。xxxx值可按256/4M内存计算。
ulimit -n 10000 #某一程序可打开文件 总数的限制

++ 块大小
mkfs.exe3 -b 4096 -m 1 /dev/sdb1 #使用4k块,保留空间设为1%(default 5%)
#大文件区可以使用较大块增加性能(但大块浪费空间)

++使用tmpfs
tmpfs 文件系统会完全驻留在 RAM 中,速度快,但重启数据将丢失.默认分区大小是系统内存的一半,可以size=1024M修改。
mkdir /dev/shm/ram
mount –bind /dev/shm/ram /RAM

++关闭不需要的tty
vi /etc/inittab
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
把后面4个注释掉.
init q #重新执行/etc/inittab,可以不重启生效。

++关闭ipv6?
vi /etc/modprobe.conf,在文件中添加以下两行
alias net-pf-10 off
alias ipv6 off

++使用 cURL 度量 Web 站点的响应时间
curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} http://blog.zhangjianfeng.com/
0.052:0.955:1.964
#time_connect 建立到服务器的 TCP 连接所用的时间
#time_starttransfer 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
#time_total 完成请求所用的时间
#这些计时器要先于DNS查询。因此,在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 0.955-0.052=0.903 秒。客户机从服务器下载数据所用的时间是 1.964-0.955=1.009 秒。
#Firefox 浏览器的 Tamper Data 可以在日志中记录 Web 浏览器发出的每个请求,并显示每个请求所用的下载时间

++使用curl取URL的Head信息
curl -I url

++硬盘读取数据性能
hdparm -tT /dev/sda

++网络文件系统(NFS)
NFS客户端可使用rsize=32768,wsize=32768,intr,noatime 挂装远程文件系统
* 使用大的读/写块(数字指定最大块大小,在这个示例中是 32KB)。
* 在挂起时 NFS 操作可以被中断。
* 不持续更新 atime。
# nfsstat -rc 命令评估客户机连接情况
Client rpc stats:
calls retrans authrefrsh # retrans列是零,这表示系统启动后没有出现需要重新传输的情况。
1465903813 0 0 #如果这个数字比较大,就应该考虑增加 NFS 内核线程,如运行rpc.nfsd 128

++网卡做Bonding
http://blog.zhangjianfeng.com/?p=177

++WEB服务器优化
| 客户端 | ===> |负载均衡器| ===> |反向代理/缓存| ===> |WEB服务器| ===> |数据库服务器|
- Nginx/LVS Squid Apache,PHP MySQL/ORACLE
* eAccelerator/memcache

++ Apache部分特性控制
AllowOverride None #禁止寻找.htaccess,加快响应.
Options FollowSymLinks #不检查相关文件是不是符号连接,加快响应.
MaxKeepAliveRequests 50 #一次持续长连接最多允许接收几次请求,如太大会消耗更多内存
KeepAliveTimeout 5 #长连接在无活动后等待多久自动关闭,太小会导致频繁创建新的进程,太大会占连接
<IfModule worker.c>
ServerLimit 20 #服务器允许配置的进程数上限
ThreadLimit 200 #每个子进程可配置的线程数上限
StartServers 5 #服务器启动时建立的子进程数
MinSpareThreads 50 #最小空闲线程数
MaxSpareThreads 250 # 设置最大空闲线程数
MaxClients 2000 # 同一时间最大接入请求数量(ServerLimit乘ThreadsPerChild的值)
ThreadsPerChild 100 #每个子进程建立的常驻的执行线程数,子进程在启动时建立这些线程后就不再建立新的线程了
MaxRequestsPerChild 10000 ##每个进程只响应xxxx次,超过此数后关闭自身并启用新的进程
</IfModule>
Timeout 300 #客户程序和服务器连接的超时间隔
KeepAlive On #用于支持HTTP 1.1版本的一次连接、多次传输功能
MaxKeepAliveRequests 100 #一次连接可以进行的HTTP请求的最大请求次数。其值为0时为不限制
#ExtendedStatus On #服务器提供运行状态信息。
#ServerAdmin you@your.address
KeepAliveTimeout 15 #一次连接中的多次请求传输之间的时间,超过定义值后,服务器就断开连接。
–找相对低端的机器处理图片和 HTML 页面,使用squid或设置KeepAlives off ,来减少断开连接的时间。
–将图片与页面服务器进行分离,因图片传输需要的时间更长,传输需要花很大开销在建立连接上,apache并发性能肯定会下降
–Web目录中文件数不要太多(超过1000),文件越多花费在定位上的时间也越多.

++其它
对于 PHP 脚本而言,主要的瓶颈是 CPU ,对于静态页面而言,瓶颈是内存和网络。
3、Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。
4、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。

[第三方软件优化]
18、如果喜欢从修改 Apache 源码入手,可以安装 lingerd。在页面产生和发送后,每个 Apache 进程都会浪费一段时光在客户连接上,Lingerd 能接管这项工作,让 Apache 迅速服务下一个客户请求。
19、如果你足够勇敢的话,还可以采用 Silicon Graphics 的 Accelerated Apache 补丁。这个工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。
安装一个 PHP 缓冲产品能提升 25-100% 的性能。

++Test Web server’s compression support
http://www.port80software.com/products/httpzip/compresscheck

++APACHE优化原则
1点击/秒以下,可以不优化apache与系统的接口
1点击/秒以上,需要优化apache与系统的接口
每日PV数 / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / Web服务器台数 = 同时连接数

++buffer 设置
/proc/sys/net/core/rmem_default & /proc/sys/net/core/wmem_default

++性能瓶径值
CPU >80%
vmstat 中r(run)<5,b(behind)≈0,
IBM RS/6000: 好 坏 糟糕
CPU: user% + sys%< 70% user% + sys%= 85% user% + sys%=90%+
磁盘: iowait % < 30% iowait % =40% iowait % = 50%+
内存: 无pagein pageout 每个CPU 达到10 page/秒 更多的pagein pageout
网络 < 30% 网络带宽
运行队列(Run Queue) < 2 * CPU个数

一般来说vmstat的性能指标为:wa不超过25,us+sy多用户情况下不超过80%,r和b不高于5,pi和po基本为零,fr:sr 接近1:1(当然都为零最好),fre一般不要底到120.

++IO调整优化
cat /sys/block/sda/queue/scheduler #确定正在使用的是哪个 I/O 调度程序
在grub.conf的相应启动选项里加入elevator=deadline,如:
kernel /vmlinuz-2.6.6 ro root=/dev/sda6 elevator=deadline
#Deadline的I/O调度器,在数据吞吐量非常大的数据库系统中表现得更有优势。

++各瓶径判断方向
用iostat、sar、tprof检测是否是CPU原因
用vmstat、svmon检测是否是内存原因
用filemon、iostat检测是否是硬盘原因
用netstat 、nfsstat检测是否是网络原因
++一些概念
Pageout 指的是磁盘上内存页从物理内存到 Swap 空间的转移
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作

分享到:
评论

相关推荐

    Linux性能与安全合集

    linux服务器优化调优笔记.pdf Linux的高级路由和流量控制.pdf RHEL Kernel Performance 调优.pdf RHEL 性能优化.pdf RHELIBM System x服务器上的调优(三).pdf RHELIBM System x服务器上的调优(二).pdf ...

    linux系统优化详细笔记文档

    以下是一些关键的优化策略,根据提供的笔记文档内容进行详细解释: 1. **最小化原则**: - **安装系统最小化**:只安装必要的软件包和服务,避免不必要的资源消耗。 - **开启服务最小化**:关闭未使用的系统服务...

    马哥的linux学习笔记

    《马哥的Linux学习笔记》是一份针对初学者和进阶者精心编撰的Linux教程,旨在帮助读者全面掌握Linux操作系统的核心概念、命令行操作以及系统管理技能。这份笔记以清晰明了的语言和实例解析了Linux系统的各个方面,是...

    201808达内大数据Linux阶段学习课后笔记

    Linux是世界上最广泛使用的开源操作系统之一,它为各种规模的企业提供了强大的服务器平台,也是大数据处理、云计算和物联网领域的核心。这份“201808达内大数据Linux阶段学习课后笔记”涵盖了Linux基础到高级应用的...

    黑马Linux笔记.zip

    10. **系统监控与性能优化**:top、vmstat、iostat、mpstat等监控工具,内存、CPU、磁盘I/O的分析和调优。 11. **系统服务与定时任务**:systemd服务管理,cron定时任务设置。 12. **安全与防火墙**:SSH安全配置...

    linux笔记.zip

    5. **系统监控和性能调优**:使用系统工具如top、vmstat、iostat和sar进行性能监控,优化系统参数以提升性能。 6. **高级存储管理**:包括RAID配置,LVM快照和镜像,以及文件系统修复。 在学习过程中,你需要深入...

    linux内核解析笔记

    Linux内核解析笔记 在深入探讨Linux内核之前,我们首先要理解什么是内核。操作系统内核是系统的核心...对于IT专业人士来说,掌握Linux内核的工作原理和调优技巧,无疑能提升其在系统架构和性能优化方面的专业能力。

    韩顺平2018版Linux笔记

    性能调优涉及内存管理、CPU调度、I/O优化等方面,可通过`iostat`、`vmstat`等工具进行监控。 【总结】 “韩顺平2018版Linux笔记”全面涵盖了Linux的基础知识,无论对于初学者还是经验丰富的用户,都是很好的参考...

    大数据Linux基础学习笔记

    在大数据环境中,Linux服务器间的通信至关重要。学习如何配置网络接口(如ifconfig、ip命令),设置静态IP,以及使用SSH进行远程登录,都是必备技能。 六、Linux软件安装与管理 在Linux中,常用包管理器如apt...

    老男孩 运维笔记.pdf下载 高清完整版

    ### Linux安装与优化 Linux安装后需要进行一些基本优化来提高系统...这些知识点涵盖了系统安装、优化、服务器搭建、数据库管理和性能调优等各个重要方面,对于从事Linux服务器运维工作的人士来说是必备的基本技能。

    Linux云计算 运维架构师笔记 下

    1. Linux云计算运维架构师必须熟悉多种Web服务器软件,如Apache、Nginx、Tomcat、WebLogic、LightHTTP等。在选择搭建Web服务器的软件时,运维架构师首先应考虑使用他们已经熟悉的软件。如果现有的软件无法满足需求,...

    Linux高端企业群集架构师笔记

    《Linux高端企业群集架构师笔记》是一份深入探讨Linux在企业级应用中的高级技术的文档,涵盖了虚拟化、集群技术、存储技术、高级安全、系统调优以及Nginx优化等多个关键领域。这些主题都是构建高效、稳定且安全的...

    linuxcast苏勇老师linux课程学习笔记

    在这些笔记中,你将找到关于Linux CentOS和Redhat发行版的重点内容,它们是企业级服务器环境中广泛使用的Linux发行版。 一、Linux基础 Linux是一种开源的操作系统,它基于Unix,提供了丰富的命令行工具和图形用户...

    java web linux笔记

    【描述】这份笔记可能包括了Java Web应用程序的开发、部署、优化以及Linux系统管理的各个方面。Java Web开发部分可能涵盖了Servlet、JSP、Spring框架、MVC模式、Tomcat服务器的使用等内容。而Linux部分则可能涉及到...

    linux中高级运维笔记(二)

    的是熟练甚至精通基于Linux 系统安装配置各种应用软件,对软件进行调优以及软件在使用 中遇到各类问题,能够快速定位并解决问题。 本章向读者介绍进程、线程、企业Vsftpd 服务器实战、匿名用户访问、系统用户访问 及...

    Apache服务器配置与使用工作笔记.pdf

    - Apache服务器可以在多种操作系统上安装,如Windows、Linux、UNIX等。 - 了解安装过程中的环境配置,包括编译安装与包管理器安装的区别。 - 掌握基本的启动、停止、重启Apache服务的命令。 - 安装后的基本配置...

    适用于Linux初学者阅读的笔记

    Linux是世界上最广泛使用的开源操作系统之一,尤其在服务器领域占据着重要的地位。对于初学者来说,了解Linux的基础知识和服务器硬件是进入这个领域的第一步。本文将详细介绍服务器硬件与Linux系统的基本概念,以及...

    华为工程师总结的笔记.docx

    1. **Linux性能优化**:探讨系统性能分析和调优技术,包括CPU、内存、I/O等方面的优化。 2. **大数据量备份**:解决大规模数据备份和恢复策略,确保数据安全。 3. **Shell企业实战基础和高级编程**:学习编写复杂...

    尚观Linux笔记

    这份笔记不仅提供了基础的Linux命令解析,还深入探讨了诸如虚拟化、高级存储和系统调优等高级主题。 在初级课程(ULE)中,学习者将接触到Linux的基础知识,这是理解任何Linux相关工作或进一步深入学习的前提。这...

    linux随堂笔记.pdf

    可以通过XShell、XFtp等工具远程管理Linux服务器,实现文件传输、远程执行命令等功能。网络配置通常包括桥接模式、NAT模式等,以便于Linux系统能够在不同的网络环境中与其他设备通信。 Linux系统的学习可以分为多个...

Global site tag (gtag.js) - Google Analytics