服务器性能优化配置建议

上传人:s9****2 文档编号:512547658 上传时间:2023-11-06 格式:DOCX 页数:8 大小:20.95KB
返回 下载 相关 举报
服务器性能优化配置建议_第1页
第1页 / 共8页
服务器性能优化配置建议_第2页
第2页 / 共8页
服务器性能优化配置建议_第3页
第3页 / 共8页
服务器性能优化配置建议_第4页
第4页 / 共8页
服务器性能优化配置建议_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《服务器性能优化配置建议》由会员分享,可在线阅读,更多相关《服务器性能优化配置建议(8页珍藏版)》请在金锄头文库上搜索。

1、目录一、服务配置建议二、MySQL性能分析及建议三、系统性能分析很久以前在前公司给中企动力那边写的服务器分析建议,其实出就是一些简单参数调整仍后 利用 vmstat,top 这些工具对系统性能做初步分析。贴出来希望对朋友们学习有帮助,同时也欢迎朋友们补充!此文档仅作参考和学习,具体 优化比较复杂欢迎朋友们探讨!一、服务器配置先阅读 apache 配置优化建议如下,再对相关参数进行调整,观察服务器状况.Apache 配置优化建议:进入/usr/local/apache2/conf/extra 目录下Apache 优化,经过上述操作后,Apache已经能够正常运行。但是,对于访问量稍大的站点,Ap

2、ache的这 些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问 量环境下发挥出更好的性能。以下我们对Apache配置文件httpd.conf中对性能影响较大的 参数进行一些说明。(1) Timeout 该参数指定 Apache 在接收请求或发送所请求内容之前的最长等待时间(秒), 若超过该时间 Apache 则放弃处理该请求,并释放连接。该参数默认值为 120,推荐设置为 60,对于访问量较大的网站可以设置为30 或 15。(2) KeepAlive 该参数控制 Apache 是否允许在一个连接中有多个请求,默认打开。但对于 大多数论坛类型站点来说,通

3、常设置为off以关闭该支持。(3) MPM - prefork.c在默认情况下Apache使用Prefork (进程)工作模式,可以说这部 分的参数设置是对Apache性能影响的核心和关键。用户可以在配置文档中找到以下配置段:IfModule prefork.c StartServers5 MinSpareServers5 MaxSpareServers10 MaxClients15 MaxRequestsPerChild 0/IfModule复制代码这就是控制Apache进程工作的配置段,为了更好的理解上述配置中的各项参数,下面让我 们先了解一下Apache是如何控制进程工作的。我们知道,在

4、Unix系统中,很多服务(Service) 的守护进程(Daemon)在启动时会创建一个进程以准备应答可能的连接请求,服务即进入了端 口监听状态,当一个来自客户端(Client)的请求被发送至服务所监听的端口时,该服务进程 即会处理该请求,在处理过程中,该进程处于独占状态,也就是说如果此时有其他请求到达, 这些请求只能“排队”等待当前请求处理完成且服务进程释放。这样就会导致越来越多的请 求处于队列等待状态,实际表现就是该服务处理能力非常低下。 Apache 使用 Prefork 模式 很好的解决了这一问题。下面我们来看看Apache实际上是如何高效率工作的。当 Apache 启动时, Apac

5、he 会启动 StartSpareServers 个空闲进程同时准备接收处理请求, 当多个请求到来时, StarSpareServers 进行会越来越少, 当空闲进程减少到 MinSpareServers 个时, Apache 为了能够继续有充裕的进程处理请求,它会再启动 StartsServers 个进程备用,这样就大大减少了请求队列等待的可能,使得服务效率提高, 这也是为什么叫做Pre-fork的原因;让我们继续跟踪Apache的工作,我们假设Apache已 经启动了 200个进程来处理请求,理论上来说,此时Apache 一共有205个进程,而过了一 段时间,假设有100个请求都得到了 A

6、pache的响应和处理,那么此时这100个进程就被释 放成为空闲进程,那么此时Apache有105个空闲进程。而对于服务而言,启动太多的空闲 进程时没有任何意义的,反而会降低服务器的整体性能,那么Apache真的会有105个空闲 进程么?当然不会!实际上Apache随时在检查自己,当发现有超过MaxSpareServers个空 闲进程时,则会自动停止关闭一些进程,以保证空闲进程不过过多。说到这里,用户应该对 Apache 的工作方式有了一定的了解,如果想获得更多更详细的说明请参阅 Apache 手册文 档。我们还有两个参数没有介绍:MaxClients 和 MaxRequestPerchild

7、; MaxClients 指定 Apache 在同一时间内最多允许有多少客户端能够与其连接,如果超过MaxClients个连接,客户端 将会得到一个“服务器繁忙”的错误页面。我们看到默认情况下MaxClients设置为15,这 对一些中型站点和大型站点显然是远远不够的!也许您需要同时允许512个客户端连接才能 满足应用需求,好吧,那么就让我们把MaxClients修改为512,保存httpd.conf并退出, 重启Apache,很遗憾,在重启过程当中您看到了一些错误提示,Apache重启失败。错误提 示中告诉您 MaxClients 最大只能设定为 256,相信您一定很失望。不过不要沮丧, A

8、pache 作为世界一流的 WebServer 一定不会如此单薄的!在默认情况下, MaxClients 的确只能设 定为不超过 256 的整数,但是,如果您有需要完全可以随意定制,此时就需要使用 ServerLimit 参数来配合使用,简单的说 ServerLimit 就像是水桶,而 MaxClients 就像是 水,您可以通过更换更大的水桶(将 ServerLimit 设定为一个较大值)来容纳更多的水 (MaxClients),但要注意,MaxClients的设定数值是不能大于ServerLimit的设定数值的! 注:MaxClen ts ServerLim it下面让我们了解一下 Max

9、RequestPerChild 参数,该参数指定一个连接进程中可以有多少个 线程同时工作。也许这样解释过于专业,那么您只要想想“网络蚂蚁”、“网际快车 FlashGet”中的“多点同时下载”即可,该参数实际上就是限制最多可以用几个“点”。默 认设置为 0,即为:不限制。但需要注意,如果将该值设置的过小会引起访问问题,如果没 有特殊需要或者访问量压力并非很大可以保持默认值,如果访问量很大则推荐设置为2048。好了,解释了这么多,让我们看看经过修改后Perfork.c配置段的推荐配置: IfModule prefork.cStartServers5MinSpareServers5MaxSpareS

10、ervers10ServerLimit1024MaxClients768 MaxRequestsPerChild 0 /IfModule复制代码完成了上述对Apache的调整,Apache已经获得了较大的性能改善。二、MySQL优化建议及分析MySQL 优化步骤:1、看机器配置,指三大件:cpu、内存、磁盘(I/O)2、看 mysql 配置参数3、查系 mysql 行状态,可以用 mysqlreport 工具来查看4、查看 mysql 的慢查询依次解决了以上问题之后,再来查找程序方面的问题MySQL 优化具体方法及建议1. 以root数据库服务器,先查看相关日志,看看有什么异常tail ?n1

11、00 xxx.erro2. 以root身份登陆MySQL数据库,Mysql ?uroot ?pshow processlist;i3. 使用 show status 命令mysql 会给出一个很长的列表官方说明在 http:/ 客户端非法中断连接次数 aborted_connects 连接 mysql 失败次数 com_xxx xxx 命令执行次数, 有很多条connections 连接 mysql 的数量 Created_tmp_disk_tables 在磁盘上创建的临时表 Created_tmp_tables 在内存里创建的临时表Created_tmp_files 临时文件数Key_rea

12、d_requests The number of requests to read a key block from the cache Key_reads The number of physical reads of a key block from disk Max_used_connections 同时使用的连接数Open_tables 开放的表 Open_files 开放的文件Opened_tables 打开的表Questions 提交到 server 的查询数Sort_merge_passes 如果这个值很大,应该增加 f 中的 sort_buffer 值 Uptime 服务器已经

13、工作的秒数提升性能的建议:1. 如果 opened_tables 太大,应该把 f 中的 table_cache 变大2. 如 果 Key_reads 太 大 , 则 应 该 把 f 中 key_buffer_size 变 大 . 可 以 用 Key_reads/Key_read_requests 计算出 cache 失败率3. 如果 Handler_read_rnd 太大,则你写的 SQL 语句里很多查询都是要扫描整个表,而没有发 挥索引的键的作用4. 如果 Threads_created 太大 ,就要增加 f 中 thread_cache_size 的值 .可以用 Threads_crea

14、ted/Connections 计算 cache 命中率5. 如果 Created_tmp_disk_tables太大,就要增加 f 中 tmp_table_size 的值,用基于内 存的临时表代替基于磁盘的注:所以配置参数可以修改/etc/f此文件.具体更深入的 mysql 优化请见本版相关贴三、系统负载及性能分析方法及工具介绍vmstatProcs-r:运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大 于 1)-b:处于不可中断状态的进程数,常见的情况是由10引起的Memory-swpd:切换到交换内存上的内存(默认以KB为单位)如果 swpd 的值不为

15、 0,或者还比较大,比如超过 100M 了,但是 si, so 的值长期为 0 这种情况我们可以不用担心,不会影响系统性能。-free: 空闲的物理内存-buff: 作为 buffer cache 的内存,对块设备的读写进行缓冲-cache: 作为 page cache 的内存, 文件系统的 cache如果 cache 的值大的时候,说明 cache 住的文件数多,如果频繁访问到的文件都能被 cache 住,那么磁盘的读 IO bi 会非常小。Swap-si: 交换内存使用,由磁盘调入内存-so: 交换内存使用,由内存调入磁盘内存够用的时候,这2个值都是0,如果这2 个值长期大于0 时,系统性能会受到影响。磁 盘 IO 和 CPU 资源都会被消耗。我发现有些朋友看到空闲内存(free)很少或接近于0时,就认为内存不够用了,实际上不能 光看这一点的,还要结合si,so,如果free很少,但是si,so也很少(大多时候是0),那么 不用担心,系统性能这时不会受到影响的。Io-bi: 从块设备读入的数据总量(读磁盘) (KB/s),-bo: 写入到块设备的数据总理(写磁盘) (KB/s)随机磁盘读写的时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号