zoukankan      html  css  js  c++  java
  • Linux调优(内存,CPU)

    一、相关概念简介

    • system call:系统调用
    • time slice:cpu时间片
    • O(1):Linux系统进程调度器
    • page frame:分页
    • RSS:常驻内存集,无法被页面化的数据
    • MMU:内存管理单元,维护线性地址空间和物理地址空间的映射表
    • TLB:转换后缓冲器
    • huge page:大页
    • NUMA:非一致内存访问,有多颗CPU,每颗CPU有自己的内存段,每段叫做一个node,建议进程做CPU亲缘性绑定

    二、CPU内存调优

    • 调进程与CPU的亲缘性
    # taskset -p mask pid
    # taskset mask -- program
    # taskset -c 0,,2-7 -- myprogram
    
    # taskset -p -c 1 17947  #将pid为17947的进程绑定至第2颗CPU上,重启失效
    
    • 查看进程当前运行在哪颗CPU上
    # ps axo psr,pid,cmd
    
    • cpu中断统计
    # cat /proc/interrupts
    
    • numactl:对MUMA策略管理
    • 调整进程优先级:nice, renice
    • 隔离CPU,被隔离的CPU不会处理中断
    # vim /etc/grub.conf
    	kernel ...... lsolcpus=1,2,3...
    
    • 调度类别:
    SCHED_FIFO [0-99]
    	chrt -f [1-99] /path/to/program arguments
    SCHED_RR
    	chrt -f [1-99] /path/to/program arguments
    SCHED_NORMAL [100-139]
    	nice,renice
    
    • 0 - 139
    1-99:实时优先级
    100-139:动态优先级
    
    • 性能监控工具
    htop
    dstat
    glances
    sysdig
    sar -P ALL 1 2
    vmstat 1 5
    iostat -c 1
    
    • 配置大页
    vm.nr_hugepages = 10
    
    • 当前系统打开最大文件数
    fs.file-max = 8192
    
    • 当前系统所以异步io允许的最大事件数
    fs.aio-max-nr = 65535
    
    • OOM可调参数
    vm.panic_on_oom = 0
    /proc/pid/oom_adj  [-16-15] #数字越高,被杀死的值越大,如果是-17则这个进程是无懈可击的
    

    三、内存总结

    nr_hugepages
    swapiness
    overcommit_memory
    
  • 相关阅读:
    SQL JOIN
    string.Empty, "" 和 null 三者的区别
    java JDBC
    java 自定义注解
    Spring Bean自动检测
    Spring Aware接口
    IObservable 接口
    CloseHandle()函数的使用
    [置顶] 记一次讲座与前辈的对话
    让用户关上门说话:覆盖全美6000个社区的邻居私密社交网站Nextdoor是如何壮大的?
  • 原文地址:https://www.cnblogs.com/L-dongf/p/11068678.html
Copyright © 2011-2022 走看看