limits头文件使用

limits头文件使用,第1张

c++中提供了一个limits库,可以直接得到各数值类型的最大、最小值。

这里简略记录下以方便后续查阅。使用方式如下:

using namespace std

int main(){

/渗链/ int32

cout<<INT_MAX<<endl

cout<<INT_MIN<伏喊物<endl

cout<<UINT_MAX<<endl

cout<<UINT_MIN<缺液<endl

cout<<LONG_MAX<<endl

cout<<LONG_MIN<<endl

}

实验环境为ubuntu16.04

实验目的将打开文件的最大限制数修改为65535

实验 *** 作:

1、查看打开文件的限制数 ulimit -a

显示文件的打开数项为open files (-n) 1024修改

2、修改

临时生效:ulimit -n 65536 (不需要设,直接设置永久)

永久生效:

vim /etc/security/limits.conf添加

* soft nofile 65536

* hard nofile 65536

vim /etc/sysctl.conf中添加fs.file-max=655350

/sbin/sysctl -p 使立即生效

cat /proc/sys/fs/file-max 查看是否设置成功

3、ubuntu的一个问题记录

用并橘到使LInux的文件打开数为65534个,而且需要永久生效,于是将配置写到了:

vim /etc/绝兄团security/limits.conf

* soft nofile 65534

* hard nofile 65534

重新登录后limit.conf的配置都不生效,后来发现,ubuntu有个bug,root用户必须注明用户

root soft nofile 65534

root hard nofile 65534

也就是写成上面那样,重新登录,不需要尘中重启,ulimit -a可以看到文件打开数已经是65534了,这就是limits.conf不生效的原因,注 意ubuntu一定不能直接用*

最近,对Linux大页的调整,所以重温了一些Linux内存及SGA等相关概念、参数和配置,这里进行一下记录,省的总Google.

limits.conf文件实际是Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,突破系统的默认限制,对系统访问资源有一定保护作用。 limits.conf 和sysctl.conf区别在於limits.conf是针对用户,而sysctl.conf是针对整个则轮系统参数配置。

limits.conf是 pam_limits.so的 配置文件,然後/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目 录下选择一个对应的服务文件,然後根据服务文件的内容选择具体的PAM模块进行处理。

格式为:

-c 指定修改core文件的大小,1000指定了core文慧盯纤件大小。也可以对core文件的大小不做限制,如: ulimit -c unlimited

对於需要做许多套接字连接并使它们处於打开状态的应用程序而言,最好通过使用ulimit -n,或者通过设置nofile参数,为用户把文件描述符的数量设置得比默认值高一些

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

注意:要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so

详细说明:

username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

type:有 soft,hard 和 -,

soft 指的是当前系统生效的设置值。

hard 表明系统中所能设定的最大值。

soft 的限制不能比har 限制高。

用 - 就表明同时设置了 soft 和 hard 的值。

resource:

示例,若机器上部署了ORACLE数据库,我们需前仿要对oracle用户的资源做下调整,如下:

要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:

--查看当前系统配置文件ulimit的全局配置

ulimit -a

如果未进行具体设置的话,会使用默认配置,如下查看:

批注:当使用*号让全局用户生效的时候,生效的nproc的值大小是受文件/etc/security/limits.d/90-nproc.conf中nproc值大小制约的,而如果仅仅是针对某个用户,那麽就不受该文件nproc值大小的影响。

Linux系统 /etc/security/limits.conf 配置

参考自

https://yq.aliyun.com/articles/434415

https://www.itread01.com/content/1501938140.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12298729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存