总结一些和性能相关的常见参数

内核相关参数

位于/etc/sysctl.conf文件,向文件中添加

sysctl -a可以查看默认配置

修改后可以通过sysctl -p执行并看看有没有错误

例如设置错了参数:

net.core.somaxconn=65535

一个端口最大的监听TCP连接的队列长度

net.core.netdev_max_backlog=65535

数据包速率比内核处理块时 允许送到队列的数据包的最大数目

net.ipv4.tcp_max_syn_backlog=65535

TCP syn队列的最大长度 第一次握手的连接 参数过大可能也会遭受syn flood攻击

net.ipv4.tcp_fin_timeout=10

fin超时时间 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间

net.ipv4.tcp_tw_reuse=1

开启重用

net.ipv4.tcp_tw_recycle=1

快速回收

net.core.wmem_default=87380
net.core.wmem_max=16777216
net.core.rmem_default=87380
net.core.rmem_max=16777216

缓冲区的默认值和最大值

net.ipv4.tcp_keepalive_time=120

keepalive的检测时间间隔 单位为秒

net.ipv4.tcp_keepalive_intvl=30

检测无效时 重发消息间隔

net.ipv4.tcp_keepalive_probes=3

检测无效时 最多重复确认次数

kernel.shmmax=4294967295

linux内核参数中最重要的参数之一

用于定义单个共享内存段的最大值

64位linux 可取最大值为物理内存值-1byte 建议值为物理内存一半

vm.swappiness=0

free -m Swap中的内容

风险:

  • 降低操作系统性能
  • 在系统资源不足下,容易被OOM kill掉

设置为0是告诉系统除非虚拟内存完全满了 否则不要使用交换区

增加资源限制

位于 /etc/security/limit.conf

* soft nofile 65535
* hard nofile 65535
  • * 对所有用户有效
  • soft 当前系统生效的设置
  • hard 系统所能设定的最大值
  • nofile 打开文件的最大数目
  • 65535 限制的数量
  • 需要重启系统生效

设置前:

之后open files的值会提高为65535

磁盘调度策略

/sys/block/devname/queue/scheduler

查看可通过cat /sys/block/sda/queue/scheduler



现在使用的cfq 可选的是noop和deadline



用echo写入可以立即生效

简介:

  • noop电梯式调度策略

    实现了一个FIFO队列 倾向饿死读而利于写 对闪存设备 RAM和嵌入式系统是最好的选择

  • deadline 截止时间调度策略

    确保了在一个截止时间内服务请求 这个截止时间是可调整的 而默认读期限短于写期限

    对于数据库类应用是最好的选择

  • anticipatory 预料IO调度策略

    本质上和deadline一样 但在最后一次读操作后 要等待6ms 才能继续进行对其他IO请求进行调度 将一些小写入流合并成一个大写入流 用写入延迟换取最大的写入吞吐量 适合写入较多的环境 比如文件服务器 对数据库环境表现很差

  • cfq 绝对公平算法

参考资料:

TCP/IP及内核参数优化调优

Linux IO Scheduler(Linux IO 调度器)

linux性能优化参数小节的更多相关文章

  1. Linux 性能优化之 IO 子系统 系列 图

    http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一) 本文介绍了对 Linux IO 子系统 ...

  2. 如何学习Linux性能优化?

    如何学习Linux性能优化? 你是否也曾跟我一样,看了很多书.学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点.但 ...

  3. Linux 性能优化解析

    前情概述 进程调度 老板 cpu 任劳任怨的打工仔 线程 工作在做什么 可运行队列 拥有的工作清单 上下文切换 和老板沟通以便得到老板的想法并及时调整自己的工作 中断 部分工作做完以后还需要及时向老板 ...

  4. 深挖计算机基础:Linux性能优化学习笔记

    参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...

  5. Linux 性能优化排查工具

    下图1为 Linux 性能优化排查工具的总结 图1 诊断 CPU 工具 查看 CPU 核数 总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU ...

  6. Linux性能优化从入门到实战:01 Linux性能优化学习路线

      我通过阅读各种相关书籍,从操作系统原理.到 Linux内核,再到硬件驱动程序等等.   把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯 ...

  7. Linux性能优化-平均负载

    Linux性能优化-平均负载 目录 Linux性能优化-平均负载 平均负载的含义 平均负载为多少时合理 平均负载与 CPU 使用率 平均负载案例分析 场景一:CPU 密集型进程 场景二:I/O 密集型 ...

  8. linux性能优化常用命令

    作为一名linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题.软件问题.网络环境等的复杂性 和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪 ...

  9. linux性能优化cpu 磁盘IO MEM

    系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...

随机推荐

  1. Linux中硬链接和软链接的区别

    看了这篇文章之后,豁然开朗.直接放链接,感谢作者的分享. https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/#ico ...

  2. Spring 缓存注解之@Cacheable,@CacheEvit

    Spring引入了Cache的支持,其使用方法类似于Spring对事务的支持.Spring Cache是作用于方法上的,其核心思想是,当我们调用一个缓存方法时,把该方法参数和返回结果作为一个键值对存放 ...

  3. 从零开始学java (五)接口与内部类

    接口,是描述类具有什么样的功能,而不是给出每个功能的实现.一个类可以implements多个接口...接口中可以含有 变量和方法.但是要注意, 接口中的变量会被隐式地指定为public static ...

  4. Python几周学习内容小结

    环境配置 学习python首先是要配置环境,我们选择了Anaconda. 什么是Anaconda:专注于数据分析的python发行版本. 为什么选择Anaconda:省事省心,分析利器 至于下载和安装 ...

  5. springboot pom.xml记

    本文包括: springboot 基本pom.xml配置 热部署 配置打包插件 maven pom.xml配置详解 1. springboot 基本pom.xml配置 <project xmln ...

  6. Maven 项目 启动时 解决3 字节的 UTF-8 序列的字节 3 无效

    "org.activiti.bpmn.exceptions.XMLException: 3 字节的 UTF-8 序列的字节 3 无效." Maven 项目启动时,由于读XML配置文 ...

  7. 洛谷 p2440木材加工

    #include <iostream>#include <cstring>using namespace std;const int N = 1e5 + 100;int a[N ...

  8. 使用Eclipse的代码追踪功能

    在使用Java编写复杂一些的程序时,你会不会常常对一层层的继承关系和一次次方法的调用感到迷惘呢?幸亏我们有了Eclipse这么好的IDE可以帮我们理清头绪--这就要使用Eclipse强大的代码追踪功能 ...

  9. Note of Python Math

    Note of Python Math math 库是Python 提供的内置数学类函数库,而其中复数类型常用于科学计算,一般计算并不常用,因此math 库不支持复数类型.math 库一共提供4个数学 ...

  10. FPGA学习之旅

    从大学就开始使用stm32,工作之后,仍然没有摆脱,从f1系列,到f4系列,然后又到L1系列,尽管可以满足工作需要,但还是希望可以摆脱束缚,尝试学习FPGA,希望能够遇到一个好机遇.