ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:182.02KB ,
资源ID:7466835      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7466835.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(limits和sysctl配置详解.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

limits和sysctl配置详解.docx

1、limits和sysctl配置详解limits.conf和sysctl.conf那些事儿1.limits.conf/etc/security/limits.conf 工作原理:limits.conf文件实际是Linux PAM(插入式认证模块,Pluggable Authentication Modules中pam_limits.so的配置文件),突破系统的默认限制,对系统访问资源有一定保护作用,当用户访问服务器时,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。limits.conf

2、 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置。 文件格式: username|groupname type resource limi1)username|groupname设置需要被限制的用户名,组名前面加和用户名区别。也可用通配符*来做所有用户的限制2)type类型有soft,hard 和 -soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值,soft的限制不能比hard限制高。- 表明同时设置了soft和hard的值。3)resource: 表示要限制的资源core - 限制内核文件的大小cor

3、e file : 当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储映像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。core文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像,系统默认core文件的大小为0,所以没有被创建。可以用ulimit命令查看和修改core文件的大小。 ulimit -c 0 #ulimit -c 1000 #ulimit -c unlimited 注意:如果想让修改永久生效,则需要修改配置文件,如 .bash_profile、/etc/profile或/etc/security/limits.confdate

4、 - 最大数据大小fsize - 最大文件大小memlock - 最大锁定内存地址空间nofile - 打开文件的最大数目。对于需要做许多套接字连接并使它们处于打开状态的应用程序而言,最好通过使用ulimit -n,或者通过设置nofile参数,为用户把文件描述符的数量设置得比默认值高一些。rss - 最大持久设置大小stack - 最大栈大小cpu - 以分钟为单位的最多 CPU 时间noproc - 进程的最大数目as - 地址空间限制maxlogins - 此用户允许登录的最大数目通过ulimit -a可以查看限制数量a)Centos5/6centos5/6,只需要关注/etc/secu

5、rity/limits.conf和/etc/security/limits.d/下配置文件Centos5/6永久修改open files数量1)在/etc/security/limits.conf下,添加以下两行* soft nofile 65535* hard nofile 655352)重启服务器通过ulimit -a查看,如上面没有生效,添加如下步骤:1)find / -name pam_limits.so2)在/etc/pam.d/login下结尾处添加:session required /usr/lib64/security/pam_limits.so路径为第1步查找时给的结果反馈3

6、)重启服务器注:ulimit其实就是对单一程序的限制,进程级别的。/proc/sys/fs/file-max,该参数指定系统范围内所有进程可以打开的文件句柄的数量限制。Centos5/6永久修改file-max参数vi /etc/sysctl.conffs.file-max = 2000000sysctl -pcat /proc/sys/fs/file-maxCentos5/6修改max user memory数量1)在/etc/security/limits.d/90-nproc.conf下,修改以下行(建议值65535)* soft nproc 1024b)Centos7centos7,/

7、etc/security/limits.conf和/etc/security/limits.d/仅适用于通过PAM认证登录用户的资源限制(PAM认证顺序:Service(服务)PAM(配置文件)pam_*.so。PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。),但是对systemd的service资源限制不生效。对于systemd service的资源限制主要依靠/etc/systemd/system.conf和 /etc/systemd/user.conf,同时也会加载两个对应的

8、目录中的所有.conf文件 /etc/systemd/system.conf.d/*.conf和/etc/systemd/user.conf.d/*.conf。system.conf是系统实例使用的,user.conf用户实例使用的。一般的service,使用system.conf中的配置即可针对单个Service也可以设置,比如nginx.serviceLimitNOFILE=65535LimitNPROC=65535Centos7永久修改open files数量1)在/etc/security/limits.conf下,添加以下两行* soft nofile 65535* hard nof

9、ile 655352)重启服务器通过ulimit -a查看,如上面没有生效,添加如下步骤:1)find / -name pam_limits.so2)在/etc/pam.d/login下结尾处添加:session required /usr/lib64/security/pam_limits.so路径为第1步查找时给的结果反馈3)重启服务器注:ulimit其实就是对单一进程的限制,进程级别的。/proc/sys/fs/file-max,该参数指定系统范围内所有进程可以打开的文件句柄的数量限制。Centos7永久修改file-max参数vi /etc/sysctl.conffs.file-max

10、 = 2000000sysctl -pcat /proc/sys/fs/file-maxCentos7修改max user memory数量vi /etc/systemd/system.confDefaultLimitNPROC=100000 重启服务器 cat /proc/mysql的PID/limits注:Centos7一次性修改core、max_processes、max_open_file三个参数方法vi /etc/systemd/system.confDefaultLimitCORE=infinityDefaultLimitNOFILE=100000(建议值65535)Default

11、LimitNPROC=100000(建议值65535) 重启服务器cat /proc/mysql的PID/limits2.sysctl.conf(内核版本3.10)/proc/sys目录下存放着大多数内核参数,并且可以在系统运行时进行更改,不过重新启动机器就会失效。/etc/sysctl.conf是一个允许改变正在运行中的Linux系统接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。也就是说/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系。常见参数及设置:c)fsfs.aio-max-nr表示同时拥有的异步IO请求数量。Oracl

12、e建议将该参数设置为1048576或更高。默认值:65536fs.aio-nr表示当前IO请求数量。该参数为只读参数。fs.epoll.max_user_watches一个用户能够往epoll 内核事件表注册的事件总量,它是指该用户打开的所有epoll实例总共能监听的事件数目,而不是单个epoll实例能监听的事件数目。这个内核参数限制了epoll使用的内核内存总量。 默认值:411648。fs.file-max表示系统级文件描述符数限制最大值,是对整个系统的限制,并不是针对用户的。当前测试环境默认为198266。建议计算的公式:grep -r MemTotal /proc/meminfo |

13、awk printf(%d,$2/10)fs.file-nr文件与file-max相关,它有三个值:已分配文件句柄的数目,已使用文件句柄的数目,文件句柄的最大数目,该文件是只读的,仅用于显示信息。fs.inode-state此文件保存了三个值,前两个分别表示 已分配inode数和空闲inode数。第三个是已超出系统最大inode值的数量,此时系统需清除排查inode列表inotify-tools相关内核参数fs.inotify.max_queued_events:表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,

14、但会触发IN_Q_OVERFLOW事件。fs.inotify.max_user_instances:表示每一个real user ID可创建的inotify instatnces的数量上限。fs.inotify.max_user_watches:表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况,适当增加此值的大小。租借锁相关内核参数fs.lease-break-time = 45:表示租借锁时间为45sfs.leases-enable = 1:表示启用租借锁,默认状态启用。fs.nr_open表示单个进程可分配的最大文件数,注意ulimit

15、的nofile hard limit不能超过该值,否则会造成无法登录。默认值为:1048576。 fs.protected_hardlinks用于限制普通用户建立硬链接0:不限制用户建立硬链接1:限制,如果文件不属于用户,或者用户对此用户没有读写权限,则不能建立硬链接默认值为:1。fs.protected_symlinks = 1用于限制普通用户建立软链接0:不限制用户建立软链接1:限制,允许用户建立软连接的情况是 软连接所在目录是全局可读写目录或者软连接的uid与跟从者的uid匹配,又或者目录所有者与软连接所有者匹配默认值:1。fs.suid_dumpable表示如果一个程序设定了setui

16、d,那么普通用户在默认情况下不生成core文件,只有当该参数为1时,才会产生。默认值为0。d)kernelkernel.cad_pid表示接收Ctrl+Alt+Del操作的INT信号的进程的PID默认值为1。kernel.ctrl-alt-del该值表示控制系统在接收到 ctrl+alt+delete 按键组合时如何反应:1:不捕获ctrl-alt-del,将系统类似于直接关闭电源0:捕获ctrl-alt-del,并将此信号传至cad_pid保存的PID号进程进行处理 默认值为0。kernel.core_pattern设置core文件保存位置或文件名,只有文件名时,则保存在应用程序运行的目录下

17、默认值为core。kernel.core_pipe_limit定义了可以有多少个并发的崩溃程序可以通过管道模式传递给指定的core信息收集程序。如果超过了指定数,则后续的程序将不会处理,只在内核日志中做记录。0是个特殊的值,当设置为0时,不限制并行捕捉崩溃的进程,但不会等待用户程序搜集完毕方才回收/proc/pid目录(就是说,崩溃程序的相关信息可能随时被回收,搜集的信息可能不全)。默认值为0。kernel.core_uses_pidCore文件的文件名是否添加应用程序pid做为扩展:0表示不添加,1表示添加。默认值为1。kernel.dmesg_restrict限制哪些用户可以查看syslo

18、g日志,0表示不限制,1表示只有特权用户可以查看。默认值为0。kernel.kptr_restrict是否启用kptr_restrice,此功能为安全性功能,用于屏蔽内核指针。0:该特性被完全禁止;1:那些使用“%pk”打印出来的内核指针被隐藏(会以一长串0替换掉),除非用户有CAP_SYSLOG权限,并且没有改变他们的UID/GID(防止在撤销权限之前打开的文件泄露指针信息);2:所有内核指使用“%pk”打印的都被隐藏。默认值为0,建议设置为1。kernel.modprobe该文件给出了当系统支持module时完成modprobe功能的程序的名字(包括路径)。默认值为:/sbin/modpr

19、obekernel.modules_disabled表示是否禁止内核运行时可加载模块:0表示不禁止,1表示禁止 默认值为0。kernel.msgmax消息队列中单个消息的最大字节数。默认值为8192。kernel.msgmnb单个消息队列中允许的最大字节长度(限制单个消息队列中所有消息包含的字节数之和)默认值为16384。kernel.msgmni系统中同时运行的消息队列的个数。默认值为3965。kernel.numa_balancing表示是否禁止NUMA自动平衡策略,0表示禁止,1表示不禁止。 默认为0 补充:numa相关知识 numactl需要安装相应软件包numactl.x86_64d

20、mesg | grep -i numa,若有返回值表示CPU支持NUMA0.000000 NUMA: Node 0 mem 0x00000000-0x0009ffff + mem 0x00100000-0x0fffffff - mem 0x00000000-0x0fffffff0.000000 NUMA: Node 0 mem 0x00000000-0x0fffffff + mem 0x10000000-0x7fffffff - mem 0x00000000-0x7fffffff numasta查看具体numa信息numa_hit是打算在该节点上分配内存,最后从这个节点分配的次数;num_mi

21、ss是打算在该节点分配内存,最后却从其他节点分配的次数;num_foregin是打算在其他节点分配内存,最后却从这个节点分配的次数;interleave_hit是采用interleave策略最后从该节点分配的次数;local_node该节点上的进程在该节点上分配的次数other_node是其他节点进程在该节点上分配的次数numactl -hardare查看不同节点的内存总大小,可用大小及node distance建议:数据库服务器关闭该功能,centos7,vi /etc/grub2.cfg找到rhgb quiet,在他们后面加上“numa=off”,重启即可。kernel.panic系统发生

22、panic时内核重新引导之前的等待时间,0表示禁止重新引导,0表示引导前等待几秒。默认值为0。kernel.panic_on_oops当系统发生oops或BUG时,所采取的措施,0表示继续运行,1表示让klog记录oops的输出,然后panic,若kernel.panic不为0,则等待后重新引导内核。 默认值为1。kernel.panic_on_warn0:表示只警告,不发生panic,1表示发生panic。 默认值为0。perf性能分析工具kernel.perf_cpu_time_max_percent:perf分析工具最大能够占用CPU性能的百分比,0表示不限制,1100表示百分比。默认值

23、为25。kernel.perf_event_max_sample_rate:设置perf_event最大取样速率默认值:10000。kernel.perf_event_mlock_kb:设置非特权用户允许常驻内存的内存大小。默认值为516(KB)。kernel.perf_event_paranoid:用于限制访问性能计数器的权限。0表示仅允许访问用户空间的性能计数器;1表示内核与用户空间的性能计数器都可以访问2表示仅允许访问特殊的CPU数据-1表示不限制默认值为1kernel.pid_max表示当前操作系统PID的最大值默认值:131072。64位操作系统最大值为4194303。kernel.

24、pty.max所分配的PTY的最大值(PTY为虚拟终端,用于远程连接)默认为4096。kernel.pty.nr当前配置的PTY个数。该参数为可变参数。kernel.pty.reserve保留的PTY个数,主要分配给系统使用。默认值为1024。kernel.random.boot_id此文件是个只读文件,包含了一个随机字符串,在系统启动的时候会自动生成这个uuid。kernel.random.entropy_avail此文件是个只读文件,给出了一个有效的熵(4096位)kernel.random.poolsize熵池大小,一般是4096位,可以改成任何大小。kernel.random.read

25、_wakeup_threshold该文件保存熵的长度,该长度用于唤醒因读取/dev/random设备而待机的进程(random设备的读缓冲区长度)kernel.random.uuid此文件是个只读文件,包含了一个随机字符串,在random设备每次被读的时候生成。kernel.random.write_wakeup_threshold该文件保存熵的长度,该长度用于唤醒因写入/dev/random设备而待机的进程(random设备的写缓冲区长度)kernel.randomize_va_space用于设置进程虚拟地址空间的随机化。 0表示关闭进程虚拟地址空间随机化 1表示随机化进程虚拟地址空间中的m

26、map映射区的初始地址,栈空间的初始地址以及VDSO页的地址 2表示在1的基础上加上堆区的随机化默认值为2。kernel.sched_child_runs_first设置保证子进程初始化完成后在父进程之前先被调度。0表示先调度父进程1表示先调度子进程 默认值为0。kernel.sched_latency_ns表示正在运行进程的所能运行的时间的最大值,即使只有一个处于running状态的进程,运行到这个时间也要重新调度一次(以纳秒为单位,在运行时会自动变化)同时这个值也是所有可运行进程都运行一次所需的时间,每个CPU的running进程数 = sched_latency_ns / sched_m

27、in_granularity_nskernel.sched_migration_cost_ns该变量用来判断一个进程是否还是hot,如果进程的运行时间(now - p-se.exec_start)小于它,那么内核认为它的code还在cache里,所以该进程还是hot,那么在迁移的时候就不会考虑它。默认值为:500000。kernel.sched_min_granularity_ns表示一个进程在CPU上运行的最小时间,在此时间内,内核是不会主动挑选其他进程进行调度(以纳秒为单位,在运行时会自动变化) 默认值为:10000000。kernel.sched_nr_migrate在多CPU情况下进行

28、负载均衡时,一次最多移动多少个进程到另一个CPU上。默认值为32。kernel.sched_rr_timeslice_ms用来指示round robin调度进程的间隔,这个间隔默认是100ms。默认值为100ms。kernel.sched_rt_period_uskernel.sched_rt_runtime_ussched_rt_period与sched_rt_runtime_us一起决定了实时进程在以sched_rt_period为周期的时间内,实时进程最多能够运行的总的时间不能超过sched_rt_runtime_us。默认值:kernel.sched_rt_period_us = 10

29、00000kernel.sched_rt_runtime_us = 950000kernel.sched_tunable_scaling当内核试图调整sched_min_granularity_ns,sched_latency_ns和sched_wakeup_granularity_ns这三个值的时候所使用的更新方法。0:不调整1:按照cpu个数以2为底的对数值进行调整2:按照cpu的个数进行线性比例的调整 默认值为1。kernel.sched_wakeup_granularity_ns该变量表示进程被唤醒后至少应该运行的时间的基数,它只是用来判断某个进程是否应该抢占当前进程,并不代表它能够执

30、行的最小时间(sysctl_sched_min_granularity),如果这个数值越小,那么发生抢占的概率也就越高。默认值为:15000000kernel.sem该变量的四个值分别表示SEMMSL、SEMMNS、SEMOPM、SEMMNISEMMSL:每个信号集的最大信号数量,数据库最大PROCESS实例参数的设置值再加上10,oracle建议将SEMMSL的值设置为不少于100。SEMMNS:用于控制整个Linux系统中信号(而不是信号集)的最大数。Oracle建议将SEMMNS设置为:系统中每个数据库的PROCESSES实例参数设置值的总和,加上最大PROCESSED值的两倍,最后根据系统中Oracle数据库的数量,每个加10。使用以下计算方式来确定在Linux系统中可以分配的信号最大数量。它将是以下两者中较小的一个值:SEMMNS或SEMMSL*SEMMNISEMOPM:内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量。semop 系统调用(函数)提供了利用一个 semop 系统调用完成多项信号操作的功能。一个信号集能够拥有每个信号集中最大数量的SEMMSL 信号,因此建议设置 SEMOPM 等于SEMMSL 。Oracle 建议将 SEMOPM 的值设置为不少于 100 。SEMMNI:内核参数用于控制整个 Linux 系统中信号

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1