服务器调优原理

1、CPU

    动态优先级:  内核自动检测占用cpu时间的进程,自动调整进程的优先级 
    手动优先级调整:调整nice值,但是内核也会再动态调整这些手动调整优先级高的进程

    CPU调度队列

      0-139个优先级队列

    内核从优先级由高到低挨个扫描队列,

         调度策略:先到先得,轮流,完全公平(CFS),

       内核调度实时进程:先到先出 或者 轮流   

       调度用户级别的进程:完全公平

2、内存  

  内存的刷写时间

  内存查看的时间

  释放已使用内存页以及释放slab小文件系统

3、硬盘

  硬盘中的数据是做成文件系统,挂载后访问。每一个文件在访问时需要更新访问时间戳,当非常频繁的被访问时关闭访问时间戳有助于io的提升

  

4、网络

    当刚刚接进来的链接,需要分析一些值如谁来请求的,要请求到谁,我们又怎么知道一共有多少个请求。所以需要在内存中使用特定内存数据结构来维持每个请求,这就是内核需要建立套接字文件,内核将这个文件请求内容转交给用户空间的某一个进程,这个进程处理完请求后还要讲结果转交给内核,内核还需要重新封装报文,返还给请求者。完成追踪就是靠这个文套接字文件维持。

    为了公平,单个进程所能打开的最大的文件描述符是有上限的,访问量高的web服务或者代理服务器,就需要最大化所能打开的文件描述符的数量。

    内核的接受缓冲:http请求在被内核转交到用户空间之前需要维持在内核内存中保存。

    内个进程也有自己的接受缓冲区。当调整某一个程序的最大并发后,如果到达上限,再来的请求就需要内核开辟一个内存来维持一段时间,这就叫后援队列。

    TCP握手,等待发起一方第三次握手,此时需要在内存中保持这个会话。大量的这个请求会导致队列耗尽,正常连接无法连接,拒绝服务。适当调短这个请求

    TCP断开,一般来讲是客户端发起断开,但是在保持连接时服务器设置超时时间,超时后服务器发起断开。

    当一个连接来了,需要申请内存保存这些连接,当连接断开了,要释放这些内存,大量的操作也会占用系统资源,所以我们可以考虑不释放,重用这些文件。来减少内存的分配和回收,提升网路io性能。

  

  

时间: 2024-10-13 15:53:12

服务器调优原理的相关文章

React 性能调优原理

一.React影响性能的两个地方 二.调优原理

【译】Java服务器调优

随着成千上万的Java服务器运行在企业线上环境,Java已经成为构建线上系统的语言之一.如果希望我们的机器表现出可接受的性能,那么就需要对它们进行定期调优.这篇文章详细阐述了Java服务器调优的各项技术. 衡量性能 为了让我们的调优有意义,我们需要某种方法来衡量性能是否提高.让我们记住两个重要的性能指标:延迟和吞吐量. 延迟(Latency) 衡量的是端到端的某个操作的处理时间.在分布式环境中我们通常用发送请求和接收到响应整个来回的时间来衡量延迟.在那些场景,延迟是从客户端机器开始衡量的,并且也

服务器调优

linux 服务器调优 Linux内核参数 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies 当出现SYN等待队列溢出时,启用cookies来处理,减少SYN攻击,默认0表示关闭, net.ipv4.tcp_tw_reuse = 1 表示开启重用.允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭: net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为

Nginx下载服务生产服务器调优

一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下. 1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ratio调整. 首先查看这个值默认应该是10. [[email protected] ~]# cat /proc/sys/vm/dirty_background_ratio 10 这个值是一个阀值,说明如果内存中的脏数据达到系统总内存的10%时,那么pdflush进程就会启动,将内存中的脏数据写回硬盘

服务器调优?

除了上述内存泄漏外,我们还发现CPU长期不足3%,系统吞吐量不够,针对8core×16G.64bit的Linux服务器来说,是严重的资源浪费. 在CPU负载不足的同时,偶尔会有用户反映请求的时间过长,我们意识到必须对程序及JVM进行调优.从以下几个方面进行: 线程池:解决用户响应时间长的问题 连接池 JVM启动参数:调整各代的内存比例和垃圾回收算法,提高吞吐量 程序算法:改进程序逻辑算法提高性能

数据库性能调优.原理与技术pdf

这是一本关于数据库调优的极佳参考书,强烈推荐给从事数据库管理人员,本书对有经验的数据库管理员同样有价值,对于数据库设计人员和数据库研究者,同样是一本难得的参考书. 下载地址:网盘下载

JVM参数设置及条调优原理

http://unixboy.iteye.com/blog/174173/ 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m.典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-

Linux服务器调优

Linux内核参数 http://space.itpub.net/17283404/viewspace-694350 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭:什么是SYN Cookies:http://www.ibm.com/developerworks/cn/linux/l-syncookie/ net.ipv4.tcp_tw_reuse = 1 表示

【CNMP系列】PHP配置和调优

上一节我们说到PHP5.6.30在CentOS7.0下的整个安装过程,http://www.cnblogs.com/riverdubu/p/6428226.html 今天我来和大家讲解一下PHP-FPM安装的一些配置和调优. PHP-FPM配置相关 再来解释下php-fpm的概念,PHP-FPM(PHP FastCGI Process Manager的简称,意思是"PHP FastCGI进程管理器"),是用于管理PHP进程池的软件,用于接收和处理来自Web服务器(例如nginx)的请求