- 浏览: 216988 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
liminshaoye:
为什么我的一次成功之后就不能发送第二次了呢?
Java 使用SMSLib通过串口通讯收发短信 -
sziitjiang:
面试的题目,慢慢研究,还是能学到很多东西
JAVA 面试题 -
sziitjiang:
老大,我百度了一下SMG引擎,把你的博客给百度出来了!
SMG引擎 1.3.0 功能说明 -
jinkunaier:
,受教了!
深入探索SOAP1.1--使用SAAJ1.2.1 -
genggeng:
THX,对我入门很有帮助......
Java 使用SMSLib通过串口通讯收发短信
ulimit 设置(2009-08-21 15:17:16)
转载标签: 杂谈 分类: 工作
ulimit -a 用来显示当前的各种用户进程限制。
Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:
ulimit -u 10000
对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
其他建议设置成无限制(unlimited)的一些重要设置是:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:
1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
a、vi /etc/ssh/sshd_config
把 UserLogin 的值改为 yes,并把 # 注释去掉
b、重启 sshd 服务:
/etc/init.d/sshd restart
3)、修改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
/**************************************
有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
修改2个文件。
1./etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
2./etc/pam.d/login
session required /lib/security/pam_limits.so
**********
另外确保/etc/pam.d/system-auth文件有下面内容
session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。
***********
3.一般用户的.bash_profile
#ulimit -n 1024
重新登陆ok
-------------
对于solaris
其实在系统里面有这样一个命令ulimit,以下是ulimit -a执行的结果:
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) unlimited
nofiles(descriptors) 1024
memory(kbytes) unlimited
其中nofiles就是文件描述符的变量值,该值受rlim_fd_cur这个参数的影响,可以用ulimit -n number命令来修改。但不管怎么改,程序仍然不能突破fd=256的限制。在Solaris Tunable Parameters Reference Manua这本书里面能查到以下的资料:
A 32-bit program using standard I/O is limited to 256 file descriptors。
A 64-bit program using standard I/O can use up to 2 billion descriptors。
这也就是说32位的程序是没有办法突破这个限制的,只有64位的程序才能使用高达2亿个文件描述符,SUN的软硬件在很早以前就实现了64位的架构,现在唯一要解决的就是将程序编译成64位程序,为了生成64位程序,就必须要有64位的编译器(其实不是这样的),如果你去www.sunfreeware.com下载64位编译器gcc,网站上没有特别注明是64位的gcc,但是会有个意外的收获,就是该软件的说明里面注明了只要在用gcc编译的时候加上-m64的option就能生成64位程序了。
于是用gcc -m64去编译生成一个64位程序后,用ulimit -n 102400将number of fd设成很大的情况下,所有问题迎刃而解,再也不存在文件描述符不够用的情况。
在/etc/system文件设置rlimi_fc_max和rlim_fd_cur格式如下:
* set hard limit on file descriptors
set rlim_fd_max = 4096
* set soft limit on file descriptors
set rlim_fd_cur = 1024
命令ulimit使用格式如下:
usage: ulimit [ -HSacdfnstv ] [ limit ]
ulimit -a是显示各参数的设置值,ulimit -n是用来设置fd的最大值的。
*************************************************
修改文件描述符限制
Solaris有两个参数控制进程可打开的文件描述符:rlim_fd_max,rlim_fd_cur。前者修改是个硬设置,修改需要权限,后者是个软设置,用户可以limit或者setrlimit() 修改,该值最大不能超过前者。一般我们在/etc/system里修改这两个参数
set rlim_fd_max = 65535
set rlim_fd_cur = 65535
==========================
ulimit 用于shell启动进程所占用的资源。
可以使用该命令查看进程占用资源的情况。
使用方法:ulimit [-acdfHlmnpsStvw] [size]
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes 5
1]在RH8的环境文件/etc/profile中,我们可以看到系统是如何配置ulimit的:
#grep ulimit /etc/profile
ulimit -S -c 0 > /dev/null 2>&1 (输出重定向,正常输出和异常输出都忽略)
这条语句设置了对软件资源和对core文件大小的设置
2]如果我们想要对由shell创建的文件大小作些限制,如:
#ll h
-rw-r--r-- 1 lee lee 150062 7月 22 02:39 h
#ulimit -f 100 #设置创建文件的最大块(一块=512字节)
#cat h>newh
File size limit exceeded
#ll newh
-rw-r--r-- 1 lee lee 51200 11月 8 11:47 newh
文件h的大小是150062字节,而我们设定的创建文件的大小是512字节x100块=51200字节
当然系统就会根据你的设置生成了51200字节的newh文件.
3]可以像实例1]一样,把你要设置的ulimit放在/etc/profile这个环境文件中.
如果针对所有用户设置,可在/etc/security/limits.conf 设置.
转载标签: 杂谈 分类: 工作
ulimit -a 用来显示当前的各种用户进程限制。
Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:
ulimit -u 10000
对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
其他建议设置成无限制(unlimited)的一些重要设置是:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:
1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
a、vi /etc/ssh/sshd_config
把 UserLogin 的值改为 yes,并把 # 注释去掉
b、重启 sshd 服务:
/etc/init.d/sshd restart
3)、修改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
/**************************************
有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
修改2个文件。
1./etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
2./etc/pam.d/login
session required /lib/security/pam_limits.so
**********
另外确保/etc/pam.d/system-auth文件有下面内容
session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。
***********
3.一般用户的.bash_profile
#ulimit -n 1024
重新登陆ok
-------------
对于solaris
其实在系统里面有这样一个命令ulimit,以下是ulimit -a执行的结果:
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) unlimited
nofiles(descriptors) 1024
memory(kbytes) unlimited
其中nofiles就是文件描述符的变量值,该值受rlim_fd_cur这个参数的影响,可以用ulimit -n number命令来修改。但不管怎么改,程序仍然不能突破fd=256的限制。在Solaris Tunable Parameters Reference Manua这本书里面能查到以下的资料:
A 32-bit program using standard I/O is limited to 256 file descriptors。
A 64-bit program using standard I/O can use up to 2 billion descriptors。
这也就是说32位的程序是没有办法突破这个限制的,只有64位的程序才能使用高达2亿个文件描述符,SUN的软硬件在很早以前就实现了64位的架构,现在唯一要解决的就是将程序编译成64位程序,为了生成64位程序,就必须要有64位的编译器(其实不是这样的),如果你去www.sunfreeware.com下载64位编译器gcc,网站上没有特别注明是64位的gcc,但是会有个意外的收获,就是该软件的说明里面注明了只要在用gcc编译的时候加上-m64的option就能生成64位程序了。
于是用gcc -m64去编译生成一个64位程序后,用ulimit -n 102400将number of fd设成很大的情况下,所有问题迎刃而解,再也不存在文件描述符不够用的情况。
在/etc/system文件设置rlimi_fc_max和rlim_fd_cur格式如下:
* set hard limit on file descriptors
set rlim_fd_max = 4096
* set soft limit on file descriptors
set rlim_fd_cur = 1024
命令ulimit使用格式如下:
usage: ulimit [ -HSacdfnstv ] [ limit ]
ulimit -a是显示各参数的设置值,ulimit -n是用来设置fd的最大值的。
*************************************************
修改文件描述符限制
Solaris有两个参数控制进程可打开的文件描述符:rlim_fd_max,rlim_fd_cur。前者修改是个硬设置,修改需要权限,后者是个软设置,用户可以limit或者setrlimit() 修改,该值最大不能超过前者。一般我们在/etc/system里修改这两个参数
set rlim_fd_max = 65535
set rlim_fd_cur = 65535
==========================
ulimit 用于shell启动进程所占用的资源。
可以使用该命令查看进程占用资源的情况。
使用方法:ulimit [-acdfHlmnpsStvw] [size]
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes 5
1]在RH8的环境文件/etc/profile中,我们可以看到系统是如何配置ulimit的:
#grep ulimit /etc/profile
ulimit -S -c 0 > /dev/null 2>&1 (输出重定向,正常输出和异常输出都忽略)
这条语句设置了对软件资源和对core文件大小的设置
2]如果我们想要对由shell创建的文件大小作些限制,如:
#ll h
-rw-r--r-- 1 lee lee 150062 7月 22 02:39 h
#ulimit -f 100 #设置创建文件的最大块(一块=512字节)
#cat h>newh
File size limit exceeded
#ll newh
-rw-r--r-- 1 lee lee 51200 11月 8 11:47 newh
文件h的大小是150062字节,而我们设定的创建文件的大小是512字节x100块=51200字节
当然系统就会根据你的设置生成了51200字节的newh文件.
3]可以像实例1]一样,把你要设置的ulimit放在/etc/profile这个环境文件中.
如果针对所有用户设置,可在/etc/security/limits.conf 设置.
发表评论
-
java对象的强引用,软引用,弱引用和虚引用
2017-03-09 23:36 330标签: javaoutofmemoryerror ... -
JAVA 中BIO,NIO,AIO的理解
2017-03-09 23:30 300JAVA 中BIO,NIO,AIO的理解 博客分类: 网络编 ... -
JAVA 中BIO,NIO,AIO的理解
2017-03-09 23:29 0博客分类: 网络编程 【转自】http://qindon ... -
诸葛亮为什么难以入围千古名相之列
2011-06-16 16:31 716诸葛亮为什么难以入围 ... -
windows 2003 密码的破解
2011-05-18 01:14 1020windows 2003 密码的破解 ... -
解决Linux操作系统下Java的中文乱码问题
2011-03-04 10:57 882解决Linux操作系统下Java的中文乱码问题 关注Linu ... -
利用sethc.exe粘滞键文件破解密码进系统小健
2011-01-20 22:42 1399利用sethc.exe粘滞键文件破解密码进系统小健 发表于 系 ... -
windows 2003服务器创建隐藏账号以及清除隐藏账号的完美教程
2011-01-20 14:18 3651一.建立一个别人永远删不掉的管理员用户 操作步骤: ... -
使用gzip优化web应用(filter实现)
2010-12-25 12:18 7822009-05-18 使用gzip优化web应用(filter ... -
浅析tomcat nio 配置
2010-11-29 20:49 983浅析tomcat nio 配置 Tomcat 6.X实现了J ... -
tomcat too open files ,solution
2010-11-28 19:28 6901) # ulimit -a core file size ( ... -
Tomcat [java.net.SocketException: Too many open files]解决方法
2010-11-28 14:26 1107主题: Tomcat [java.net.SocketExce ... -
Android开发者如何玩转应用开发
2010-11-26 12:27 747Android开发者如何玩转应 ... -
令人担忧的国内java开发现状
2010-11-25 22:20 92223 令人担忧的国内java开发现状 文章分类:Java编程 ... -
paypal在线支付的通信接口
2010-11-25 22:15 866paypal在线支付的通信接口 ★★★ 本篇为原创,需要引用转 ... -
终于搞定了Windows下Tomcat Web服务器的SSL配置
2010-11-25 17:05 1174终于搞定了Windows下Tomcat Web服务器的SSL配 ... -
QQ能上网页打不开的终极解决办法:用WinSock XP Fix修复2009-4-25
2010-06-01 09:31 4716现在某些垃圾网站 ... -
使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
2010-02-23 18:04 2412使用org.apache.commons.net.ftp包开发 ... -
axis2创建web service(一)
2009-09-22 17:22 653axis2创建w ...
相关推荐
使用以下 ebextensions 配置更新 ulimit 设置的示例 Elastic Beanstalk Docker 项目: files: "/etc/security/limits.conf": mode: "00644" owner: "root" group: "root" content: | * hard nofile 65536 ...
`ulimit` 是一个在 Linux 和其他类 Unix 操作系统中常用的命令行工具,用于设置或显示对当前 shell 进程及其子进程的资源限制。这些限制可以包括最大文件大小、最大核心文件大小、最大数据段大小、最大堆栈大小、...
放到服务器上运行一段时间抛出Toomanyopenfiles的... 异常信息简单的信息如下: I/Oexception(java.net.SocketException)caughtwhenprocessingrequest:Toomanyopenfiles 大致了解下,是文件句柄数设置太低导致
例如,在这些文件中配置ulimit设置可以控制用户会话中生成Core Dump的行为。 core-%e-%p-%t模式 通过调整/proc/sys/kernel/core_pattern文件,可以控制Core Dump文件的命名和存储位置。例如,设置模式为/corefile/...
为了确保系统能够生成完整的core dump文件,首先需要调整ulimit设置以避免文件大小限制: 1. 使用`su root`命令切换至root用户。 2. 编辑`/etc/profile`文件,在文件末尾添加以下内容: ``` ulimit -c unlimited ...
1. **core dump 功能未开启**:可以使用 `ulimit -c` 命令检查当前设置,并通过 `ulimit -c unlimited` 来解除大小限制。 2. **apport.service 处理**:如前所述,这个服务会自动处理掉 core dump 文件。确保已经...
4. **增大ulimit设置**:在bash shell的配置文件`.bashrc`中,增加ulimit的值(例如`ulimit -n 8192`),这有助于解决可能遇到的`addNode`和`importWasprofile`问题。修改后,使用`source .bashrc`使改动生效。 5. ...
4. **系统限制**:调整系统限制,如ulimit设置,以满足Oracle的运行要求。 5. **防火墙配置**:可能需要开放特定端口以允许数据库连接。 6. **时区设置**:根据需要设置正确的时区。 7. **locale设置**:Oracle需要...
此外,还需要关注其他内核参数,如ulimit设置,包括最大文件描述符数、最大进程数等。这些参数的设置对于Oracle数据库的稳定运行至关重要。另外,还要确保Oracle用户拥有适当的权限,并创建所需的目录结构,如ORACLE...
除了上述步骤,可能还需要调整ulimit设置、创建Oracle基目录、安装必要的依赖包等。例如: ``` # ulimit -n 65536 ``` 以提高文件描述符的限制。 5. **安装Oracle软件**: 使用Oracle提供的安装介质,按照...
为了优化Redis性能,需要调整用户的ulimit设置。在/etc/security/limits.conf文件中添加相应的行,以增加文件描述符(nofile)和进程限制(nproc)。 接下来,创建Redis的安装目录和数据存储路径,如/data/redis。...
4. **增大ulimit设置**: 为了防止在执行addNode和importWasprofile操作时遇到问题,需要在bash shell的配置文件`.bashrc`中增加`ulimit -n 8192`,然后运行`source .bashrc`使其生效。这将提升文件描述符的限制,...
4. **调整 ulimit 设置**:通过 `ulimit -n unlimited` 命令将文件描述符数量设置为无限制。 #### 三、OBIEE 安装步骤 ##### 3.1 准备安装目录 1. **创建安装目录**: ```bash mkdir /usr/local/OracleBI mkdir...
然后,配置用户的shell限制和系统参数,如ulimit设置,以确保Oracle数据库运行时所需的资源限制得以满足。这可能涉及到修改`/etc/security/limits.conf`文件,设置如最大打开文件数、堆栈大小等。 创建Oracle软件的...
安装过程中,还需要调整系统参数,如ulimit设置,以确保Oracle可以正确地分配文件描述符和进程数。此外,优化内存分配、共享内存设置(如SHMMAX和SHMMIN)以及虚拟内存(如SWAP)也是必不可少的步骤。 Oracle的安装...
- 对于 Linux 或 Unix 系统,可能需要检查系统的 ulimit 设置,确保没有对进程使用的内存进行严格的限制。 - 对于 Windows 系统,则需要注意操作系统的版本和可用内存。 5. **重启 Eclipse**: - 完成以上所有...
- 配置系统参数,如ulimit设置,以支持Oracle的运行。 2. **安装库文件**: - Oracle 9i需要一些特定的库文件,例如kernel-headers、ncurses、glibc等,确保这些库已安装或通过yum或rpm命令安装。 3. **创建用户...
10. **修改ulimit**:在`/etc/profile`文件中添加针对`oracle`用户的ulimit设置,确保用户可以创建足够的进程和打开文件。 11. **切换到oracle用户**:使用`su - oracle`切换到`oracle`用户,然后编辑`.bash_...
在安装Oracle前,还需要对系统进行一些必要的调整,包括调整内核参数、限制文件句柄数、修改ulimit设置以及设置环境变量等。这些设置有助于确保Oracle数据库运行时的稳定性和性能。 7. **运行安装脚本**: 在完成...