Systemd设置ulimit的方式与方法


摘要

Linux安装完成之后前面几件事情一般是处理selinux 以及处理ulimit
其实处理文件打开数有多种方法,之前也总结过, 但是最近因为systemd部署的服务问题
有一些疑惑 所以想着一起进行一下总结

ulimit持久化参数的设置

一般处理ulimit可以修改配置文件
vim /etc/security/limit.conf
可以增加上如下信息
* hard nofile 65536
* hard nproc 65536
* soft nofile 65536
* soft nproc 65536 # 需要注意: * 代表任意用户, 这样其实会扩大非特权用户的打开文件数.
如果确定是那些用户,可以讲用户名替换到 * 上面来.
# 注意修改完最后是重启一下机器

ulimit临时处理

如果有时候无法重启服务 可以使用如下命令进行处理

ulimit -HSn 65536
或者是
ulimit -HSn unlimited
也可以, 如果实在不想重启服务器进行处理
可以在程序启动脚本的最前方增加上这条命令也可以实现扩展的效果.

Systemd服务时的处理.

很多时候可以将产品作为 systemd控制的服务来运行.
此时需要编写 service文件
但是经常会发现
service 方式运行的环境不受ulimit 命令的参数结果来处理.
这种情况下有两种方式进行优化:
1. 修改全局配置文件.
2. 修改单独一个服务的配置文件.

Systemd全局服务处理

/etc/systemd/user.conf
增加: DefaultLimitNOFILE=1048576
/etc/systemd/system.conf
增加: DefaultLimitNOFILE=2097152
也可以在配置文件的 .d 目录下增加配置文件
/etc/systemd/system.conf.d/limits.conf
[Manager]
DefaultLimitNOFILE=1048576:2097152
DefaultLimitNPROC=262144:524288 然后执行 systemctl daemon-reload 就可以刷新生效
这种方式学习自:
https://unix.stackexchange.com/questions/366352/etc-security-limits-conf-not-applied/370652#370652

修改单独服务的配置文件.

有时候没有权限修改,或者是不想修改影响过大
可以单独修改一个微服务的设置:
# 需要在 Service下面添加设置
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
然后执行
systemctl daemon-reload
执行
systemctl restart someapp
就可以了.

总体建议

修改systemd服务时建议同步修改 security的配置文件
避免两者去最小值导致环境运行异常.

Systemd设置ulimit的方式与方法的更多相关文章

  1. intellj idea 如何设置类头注释和方法注释

    intellj idea 如何设置类头注释和方法注释           intellj idea的强大之处就不多说了,相信每个用过它的人都会体会到,但是我们也会被他的复杂搞的晕头转向,尤其刚从ecl ...

  2. 微信JS-SDK“分享信息设置”API及数字签名生成方法(NodeJS版本)

    原文:微信JS-SDK"分享信息设置"API及数字签名生成方法(NodeJS版本) 先上测试地址以示成功: 用微信打开下面地址测试 http://game.4gshu.com/de ...

  3. systemd设置静态IP

    /********************************************************************************* * systemd设置静态IP * ...

  4. 二十七、详述 IntelliJ IDEA 设置 Sublime 代码颜色的方法

    相信很多同学在使用 Sublime 时,看到那些五颜六色的代码感觉爽的不行,而反过来,再来看 IntelliJ IDEA 默认的代码颜色就感觉有些不爽啦!实际上,我们是可以通过「导入设置」的方式,来设 ...

  5. 【转载】图解MySQL MSI方式安装方法

    ********************************** 后来发现图片是百度的被封了.有空再换下吧. 一般百度经验这样的链接是不会失效的,大家可以百度查看. *************** ...

  6. Qt 设置背景图片3种方法(三种方法:QPalette调色板,paintEvent,QSS)

    方法1. setStylSheet{"QDialog{background-image:url()"}}  //使用styleSheet 这种方法的好处是继承它的dialog都会自 ...

  7. linux环境变量设置错误后的恢复方法(转)

    原文: http://blog.csdn.net/hoholook/article/details/2793447 linux环境变量设置错误后的恢复方法 中国自学编程网收集整理  发布日期:2008 ...

  8. Python+Selenium自动化-设置等待三种等待方法

    Python+Selenium自动化-设置等待三种等待方法   如果遇到使用ajax加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...

  9. IIS7.5使用web.config设置伪静态的二种方法

    转自 网上赚钱自学网 .http://www.whosmall.com/post/121 近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现.这两 ...

  10. idea如何设置类头注释和方法注释

    CSDN 2016博客之星评选结果公布      [系列直播]算法与游戏实战技术      "我的2016"主题征文活动 详细:idea如何设置类头注释和方法注释 标签: idea ...

随机推荐

  1. 解读 SSDB、LevelDB 和 RocksDB 到 GaussDB(for Redis) 的迁移

    摘要:本期将详细介绍 SSDB.LevelDB 和 RocksDB 到 GaussDB(for Redis)的迁移. 本文分享自华为云社区<华为云PB级数据库GaussDB(for Redis) ...

  2. 云图说丨初识分布式消息服务Kafka版

    摘要:分布式消息服务Kafka版是一款基于开源社区版Kafka提供的消息队列服务,向用户提供计算.存储和带宽资源独占式的Kafka实例. 本文分享自华为云社区<[云图说]第254期 初识分布式消 ...

  3. 最被低估的Python绘图库!Matlplotlib 超强实力鉴赏

    最被低估的Python绘图库!Matlplotlib 超强实力鉴赏 Matplotlib Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量 ...

  4. 成为一个合格程序员所必备的三种常见LeetCode排序算法

    排序算法是一种通过特定的算法因式将一组或多组数据按照既定模式进行重新排序的方法.通过排序,我们可以得到一个新的序列,该序列遵循一定的规则并展现出一定的规律.经过排序处理后的数据可以更方便地进行筛选和计 ...

  5. PS 创建网络去掉反冲增强

    一.当物料为反冲物料时,创建网络数据,希望去掉反冲标识 二.增强实施 在BAPI中传入反冲标识为空 在标准代码中发现反冲标识的赋值位置 判断当不传入反冲标识,将物料自带的反冲标识清空 定期更文,欢迎关 ...

  6. 使用触发器和C#程序实现数据同步

    项目中用到了Quartz,也算是Quartz的一个示例. 源库创建数据同步表SYNC_DATA: CREATE TABLE SYNC_DATA( ID VARCHAR2(36) NOT NULL, T ...

  7. #2035:人见人爱A^B

    实现代码 #include<iostream> using namespace std; int main() { int n, m, t; while (cin >> n & ...

  8. 12、SpringBoot-mybatis-plus-ehcache

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  9. 3D编程模式:介绍设计原则

    大家好~本文介绍6个设计原则的定义 系列文章详见: 3D编程模式:开篇 目录 单一职责原则(SRP) 依赖倒置原则(DIP) 接口隔离原则(ISP) 迪米特法则(LoD) 合成复用原则(CARP) 开 ...

  10. element-ui 实现行合并-亲测有效!

    目标样式: 首先先来看下我们拿到的返回数据: scheduleList: [ { date: '第一天', journey: '报道', lecturer: '', }, { date: '第二天', ...