limits和sysctl配置详解Word文档下载推荐.docx

上传人:b****6 文档编号:21191827 上传时间:2023-01-28 格式:DOCX 页数:38 大小:180.32KB
下载 相关 举报
limits和sysctl配置详解Word文档下载推荐.docx_第1页
第1页 / 共38页
limits和sysctl配置详解Word文档下载推荐.docx_第2页
第2页 / 共38页
limits和sysctl配置详解Word文档下载推荐.docx_第3页
第3页 / 共38页
limits和sysctl配置详解Word文档下载推荐.docx_第4页
第4页 / 共38页
limits和sysctl配置详解Word文档下载推荐.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

limits和sysctl配置详解Word文档下载推荐.docx

《limits和sysctl配置详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《limits和sysctl配置详解Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。

limits和sysctl配置详解Word文档下载推荐.docx

●rss-最大持久设置大小

●stack-最大栈大小

●cpu-以分钟为单位的最多CPU时间

●noproc-进程的最大数目

●as-地址空间限制

●maxlogins-此用户允许登录的最大数目

通过ulimit-a可以查看限制数量

a)Centos5/6

centos5/6,只需要关注/etc/security/limits.conf和/etc/security/limits.d/下配置文件

●Centos5/6永久修改openfiles数量

1)在/etc/security/limits.conf下,添加以下两行

*softnofile65535

*hardnofile65535

2)重启效劳器

通过ulimit-a查看,如上面没有生效,添加如下步骤:

1)find/-namepam_limits.so

2)在/etc/pam.d/login下结尾处添加:

sessionrequired/usr/lib64/security/pam_limits.so

路径为第1步查找时给的结果反响

3)重启效劳器

注:

ulimit其实就是对单一程序的限制,进程级别的。

/proc/sys/fs/file-max,该参数指定系统围所有进程可以翻开的文件句柄的数量限制。

●Centos5/6永久修改file-max参数

vi/etc/sysctl.conf

fs.file-max=2000000

sysctl-p

cat/proc/sys/fs/file-max

●Centos5/6修改maxusermemory数量

1)在/etc/security/limits.d/90-nproc.conf下,修改以下行〔建议值65535〕

*softnproc1024

b)Centos7

centos7,/etc/security/limits.conf和/etc/security/limits.d/仅适用于通过PAM认证登录用户的资源限制〔PAM认证顺序:

Service(效劳)→PAM(配置文件)→pam_*.so。

PAM认证首先要确定那一项效劳,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进展平安认证。

〕,但是对systemd的service资源限制不生效。

对于systemdservice的资源限制主要依靠 

/etc/systemd/system.conf和/etc/systemd/user.conf,同时也会加载两个对应的目录中的所有.conf文件和。

system.conf是系统实例使用的,user.conf用户实例使用的。

一般的service,使用system.conf中的配置即可

针对单个Service也可以设置,比方nginx.service

LimitNOFILE=65535

LimitNPROC=65535

●Centos7永久修改openfiles数量

ulimit其实就是对单一进程的限制,进程级别的。

●Centos7永久修改file-max参数

●Centos7修改maxusermemory数量

vi/etc/systemd/system.conf

DefaultLimitNPROC=100000

重启效劳器

cat/proc/mysql的PID/limits

Centos7一次性修改core、max_processes、max_open_file三个参数方法

DefaultLimitCORE=infinity

DefaultLimitNOFILE=100000〔建议值65535〕

DefaultLimitNPROC=100000〔建议值65535〕

2.sysctl.conf〔核版本3.10〕

/proc/sys目录下存放着大多数核参数,并且可以在系统运行时进展更改,不过重新启动机器就会失效。

/etc/sysctl.conf是一个允许改变正在运行中的Linux系统接口,它包含一些TCP/IP堆栈和虚拟存系统的高级选项,修改核参数永久生效。

也就是说/proc/sys下核文件与配置文件sysctl.conf中变量存在着对应关系。

常见参数及设置:

c)fs

●fs.aio-max-nr

表示同时拥有的异步IO请求数量。

Oracle建议将该参数设置为1048576或更高。

默认值:

65536

fs.aio-nr

表示当前IO请求数量。

该参数为只读参数。

一个用户能够往epoll核事件表注册的事件总量,它是指该用户翻开的所有epoll实例总共能监听的事件数目,而不是单个epoll实例能监听的事件数目。

这个核参数限制了epoll使用的核存总量。

411648。

●fs.file-max

表示系统级文件描述符数限制最大值,是对整个系统的限制,并不是针对用户的。

当前测试环境默认为198266。

建议计算的公式:

grep-rMemTotal/proc/meminfo|awk'

{printf("

%d"

$2/10)}'

●fs.file-nr

文件与file-max相关,它有三个值:

已分配文件句柄的数目,已使用文件句柄的数目,文件句柄的最大数目,该文件是只读的,仅用于显示信息。

●fs.inode-state

此文件保存了三个值,前两个分别表示已分配inode数和空闲inode数。

第三个是已超出系统最大inode值的数量,此时系统需去除排查inode列表

●inotify-tools相关核参数

表示调用inotify_init时分配给inotifyinstance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。

表示每一个realuserID可创立的inotifyinstatnces的数量上限。

表示每个inotifyinstatnces可监控的最大目录数量。

如果监控的文件数目巨大,需要根据情况,适当增加此值的大小。

●租借锁相关核参数

fs.lease-break-time=45:

表示租借锁时间为45s

fs.leases-enable=1:

表示启用租借锁,默认状态启用。

●fs.nr_open

表示单个进程可分配的最大文件数,注意ulimit的nofilehardlimit不能超过该值,否那么会造成无法登录。

默认值为:

1048576。

●fs.protected_hardlinks

用于限制普通用户建立硬

0:

不限制用户建立硬

1:

限制,如果文件不属于用户,或者用户对此用户没有读写权限,那么不能建立硬

1。

●fs.protected_symlinks=1

用于限制普通用户建立软

不限制用户建立软

限制,允许用户建立软连接的情况是软连接所在目录是全局可读写目录或者软连接的uid与跟从者的uid匹配,又或者目录所有者与软连接所有者匹配

●fs.suid_dumpable

表示如果一个程序设定了setuid,那么普通用户在默认情况下不生成core文件,只有当该参数为1时,才会产生。

默认值为0。

d)kernel

●kernel.cad_pid

表示接收Ctrl+Alt+Del操作的INT信号的进程的PID

默认值为1。

●kernel.ctrl-alt-del

该值表示控制系统在接收到ctrl+alt+delete按键组合时如何反响:

不捕获ctrl-alt-del,将系统类似于直接关闭电源0:

捕获ctrl-alt-del,并将此信号传至cad_pid保存的PID号进程进展处理

●kernel.core_pattern

设置core文件保存位置或文件名,只有文件名时,那么保存在应用程序运行的目录下

默认值为core。

●kernel.core_pipe_limit

定义了可以有多少个并发的崩溃程序可以通过管道模式传递给指定的core信息收集程序。

如果超过了指定数,那么后续的程序将不会处理,只在核日志中做记录。

0是个特殊的值,当设置为0时,不限制并行捕捉崩溃的进程,但不会等待用户程序搜集完毕方才回收/proc/pid目录〔就是说,崩溃程序的相关信息可能随时被回收,搜集的信息可能不全〕。

●kernel.core_uses_pid

Core文件的文件名是否添加应用程序pid做为扩展:

0表示不添加,1表示添加。

●kernel.dmesg_restrict

限制哪些用户可以查看syslog日志,0表示不限制,1表示只有特权用户可以查看。

●kernel.kptr_restrict

是否启用kptr_restrice,此功能为平安性功能,用于屏蔽核指针。

该特性被完全制止;

那些使用“%pk〞打印出来的核指针被隐藏(会以一长串0替换掉),除非用户有CAP_SYSLOG权限,并且没有改变他们的UID/GID(防止在撤销权限之前翻开的文件泄露指针信息);

2:

所有核指使用“%pk〞打印的都被隐藏。

默认值为0,建议设置为1。

●kernel.modprobe

该文件给出了当系统支持module时完成modprobe功能的程序的名字〔包括路径〕。

/sbin/modprobe

●kernel.modules_disabled

表示是否制止核运行时可加载模块:

0表示不制止,1表示制止

●kernel.msgmax

消息队列中单个消息的最大字节数。

默认值为8192。

●kernel.msgmnb

单个消息队列中允许的最大字节长度(限制单个消息队列中所有消息包含的字节数之和)

默认值为16384。

●kernel.msgmni

系统中同时运行的消息队列的个数。

默认值为3965。

●kernel.numa_balancing

表示是否制止NUMA自动平衡策略,0表示制止,1表示不制止。

默认为0

补充:

numa相关知识

numactl需要安装相应软件包numactl.x86_64

●dmesg|grep-inuma,假设有返回值表示CPU支持NUMA

[0.000000]NUMA:

Node0[mem0x00000000-0x0009ffff]+[mem0x00100000-0x0fffffff]->

[mem0x00000000-0x0fffffff]

Node0[mem0x00000000-0x0fffffff]+[mem0x10000000-0x7fffffff]->

[mem0x00000000-0x7fffffff]

numasta查看具体numa信息

numa_hit是打算在该节点上分配存,最后从这个节点分配的次数;

num_miss是打算在该节点分配存,最后却从其他节点分配的次数;

num_foregin是打算在其他节点分配存,最后却从这个节点分配的次数;

interleave_hit是采用interleave策略最后从该节点分配的次数;

local_node该节点上的进程在该节点上分配的次数

other_node是其他节点进程在该节点上分配的次数

●numactl--hardare查看不同节点的存总大小,可用大小及nodedistance

建议:

数据库效劳器关闭该功能,centos7,vi/etc/grub2.cfg

找到rhgbquiet,在他们后面加上“numa=off〞,重启即可。

●kernel.panic

系统发生panic时核重新引导之前的等待时间,0表示制止重新引导,>

0表示引导前等待几秒。

●kernel.panic_on_oops

当系统发生oops或BUG时,所采取的措施,0表示继续运行,1表示让klog记录oops的输出,然后panic,假设kernel.panic不为0,那么等待后重新引导核。

●kernel.panic_on_warn

表示只警告,不发生panic,1表示发生panic。

●perf性能分析工具

kernel.perf_cpu_time_max_percent:

perf分析工具最大能够占用CPU性能的百分比,0表示不限制,1~100表示百分比。

默认值为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表示不限制

默认值为1

●kernel.pid_max

表示当前操作系统PID的最大值

131072。

64位操作系统最大值为4194303。

所分配的PTY的最大值〔PTY为虚拟终端,用于远程连接〕

默认为4096。

当前配置的PTY个数。

该参数为可变参数。

保存的PTY个数,主要分配给系统使用。

默认值为1024。

此文件是个只读文件,包含了一个随机字符串,在系统启动的时候会自动生成这个uuid。

此文件是个只读文件,给出了一个有效的熵(4096位)

熵池大小,一般是4096位,可以改成任何大小。

该文件保存熵的长度,该长度用于唤醒因读取/dev/random设备而待机的进程(random设备的读缓冲区长度)

此文件是个只读文件,包含了一个随机字符串,在random设备每次被读的时候生成。

该文件保存熵的长度,该长度用于唤醒因写入/dev/random设备而待机的进程(random设备的写缓冲区长度)

 

●kernel.randomize_va_space

用于设置进程虚拟地址空间的随机化。

0表示关闭进程虚拟地址空间随机化

1表示随机化进程虚拟地址空间中的mmap映射区的初始地址,栈空间的初始地址以及VDSO页的地址

2表示在1的根底上加上堆区的随机化

默认值为2。

●kernel.sched_child_runs_first

设置保证子进程初始化完成后在父进程之前先被调度。

0表示先调度父进程

1表示先调度子进程

●kernel.sched_latency_ns

表示正在运行进程的所能运行的时间的最大值,即使只有一个处于running状态的进程,运行到这个时间也要重新调度一次(以纳秒为单位,在运行时会自动变化)

同时这个值也是所有可运行进程都运行一次所需的时间,每个CPU的running进程数=sched_latency_ns/sched_min_granularity_ns

●kernel.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情况下进展负载均衡时,一次最多移动多少个进程到另一个CPU上。

默认值为32。

●kernel.sched_rr_timeslice_ms

用来指示roundrobin调度进程的间隔,这个间隔默认是100ms。

默认值为100ms。

●kernel.sched_rt_period_us

●kernel.sched_rt_runtime_us

sched_rt_period与sched_rt_runtime_us一起决定了实时进程在以sched_rt_period为周期的时间,实时进程最多能够运行的总的时间不能超过sched_rt_runtime_us。

kernel.sched_rt_period_us=1000000

kernel.sched_rt_runtime_us=950000

●kernel.sched_tunable_scaling

当核试图调整sched_min_granularity_ns,sched_latency_ns和sched_wakeup_granularity_ns这三个值的时候所使用的更新方法。

不调整

按照cpu个数以2为底的对数值进展调整

按照cpu的个数进展线性比例的调整

●kernel.sched_wakeup_granularity_ns

该变量表示进程被唤醒后至少应该运行的时间的基数,它只是用来判断某个进程是否应该抢占当前进程,并不代表它能够执行的最小时间〔sysctl_sched_min_granularity〕,如果这个数值越小,那么发生抢占的概率也就越高。

15000000

●kernel.sem

该变量的四个值分别表示SEMMSL、SEMMNS、SEMOPM、SEMMNI

SEMMSL:

每个信号集的最大信号数量,数据库最大PROCESS实例参数的设置值再加上10,oracle建议将SEMMSL的值设置为不少于100。

SEMMNS:

用于控制整个Linux系统号〔而不是信号集〕的最大数。

Oracle建议将SEMMNS设置为:

系统中每个数据库的PROCESSES实例参数设置值的总和,加上最大PROCESSED值的两倍,最后根据系统中Oracle数据库的数量,每个加10。

使用以下计算方式来确定在Linux系统中可以分配的信号最大数量。

它将是以下两者中较小的一个值:

SEMMNS或SEMMSL*SEMMNI

SEMOPM:

核参数用于控制每个semop系统调用可以执行的信号操作的数量。

semop系统调用〔函数〕提供了利用一个semop系统调用完成多项信号操作的功能。

一个信号集能够拥有每个信号集中最大数量的SEMMSL信号,因此建议设置SEMOPM等于SEMMSL。

Oracle建议将SEMOPM的值设置为不少于100。

SEMMNI:

核参数用于控制整个Linux系统号集的最大数量。

Oracle建议将SEMMNI的值设置为不少于100。

默认参数:

kernel.sem=2503200032128

Oracle参考值:

kernel.sem=

●kernel.shm_rmid_forced

表示是否强制将共享存和一个进程联系在一起,这样的话可以通过杀死进程来释放共享存。

建议设置为1。

●kernel.shmall

系统上可以使用的共享存的总量〔以字节为单位〕

默认为399,可以根据存大小设置,如64*1024*1024*1024/4K=16777216

●kernel.shmmax

系统所允许的最大共享存段的大小〔以字节为单位〕

默认为399,可以根据存大小设置,如64*1024*1024*1024=

●kernel.shmni

整个系统共享存段的最大数量

4096

shmmax(bytes)=shmmni(pagesize,default4k)*shmall(page的个数〕

●kernel.s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

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

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