Linux系统中操作文件数过多导致的错误解决方法

   linux 打开文件数 too many open files 解决方法

  too many open files出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。

  查看每个用户最大允许打开文件数量

  代码如下:

  ulimit -a

  fdipzone@ubuntu:~$ ulimit -a

  core file size (blocks, -c) 0

  data seg size (kbytes, -d) unlimited

  scheduling priority (-e) 20

  file size (blocks, -f) unlimited

  pending signals (-i) 16382

  max locked memory (kbytes, -l) 64

  max memory size (kbytes, -m) unlimited

  open files (-n) 1024

  pipe size (512 bytes, -p) 8

  POSIX message queues (bytes, -q) 819200

  real-time priority (-r) 0

  stack size (kbytes, -s) 8192

  cpu time (seconds, -t) unlimited

  max user processes (-u) unlimited

  virtual memory (kbytes, -v) unlimited

  file locks (-x) unlimited

  其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024

  查看当前系统打开的文件数量

  代码如下:

  lsof | wc -l

  watch "lsof | wc -l"

  查看某一进程的打开文件数量

  代码如下:

  lsof -p pid | wc -l

  lsof -p 1234 | wc -l

  设置open files数值方法

  代码如下:

  ulimit -n 2048

  fdipzone@ubuntu:~$ ulimit -n 2048

  fdipzone@ubuntu:~$ ulimit -a

  core file size (blocks, -c) 0

  data seg size (kbytes, -d) unlimited

  scheduling priority (-e) 20

  file size (blocks, -f) unlimited

  pending signals (-i) 16382

  max locked memory (kbytes, -l) 64

  max memory size (kbytes, -m) unlimited

  open files (-n) 2048

  pipe size (512 bytes, -p) 8

  POSIX message queues (bytes, -q) 819200

  real-time priority (-r) 0

  stack size (kbytes, -s) 8192

  cpu time (seconds, -t) unlimited

  max user processes (-u) unlimited

  virtual memory (kbytes, -v) unlimited

  file locks (-x) unlimited

  这样就可以把当前用户的最大允许打开文件数量设置为2048了,但这种设置方法在重启后会还原为默认值。

  永久设置方法

  代码如下:

  vim /etc/security/limits.conf

  在最后加入

  代码如下:

  * soft nofile 4096

  * hard nofile 4096

  最前的 * 表示所有用户,可根据需要设置某一用户,例如

  代码如下:

  fdipzone soft nofile 8192

  fdipzone hard nofile 8192

  改完后注销一下就能生效。

  linux Argument list too long错误解决方法

  上一次需要删除/tmp目录下的所有文件,文件数量比较多。

  代码如下:

  ls -lt /tmp | wc -l

  385412

  使用 rm * 后,系统提示错误 Argument list too long

  原因是在linux下,试图传太多参数给一个系统命令(ls *; cp *; rm *; cat *; etc..)时,就会出现 Argument list too long错误。

  解决方法如下:

  使用find -exec 遍历,然后执行删除便可。

  代码如下:

  sudo find /tmp -type f -exec rm {} ;

时间: 2024-12-09 23:30:09

Linux系统中操作文件数过多导致的错误解决方法的相关文章

详解Linux系统中inode索引节点已满问题的解决方法

  今天login server的一个网站,发现login后没有生成session.根据以往经验,一般是空间已满导致session文件生成失败. 代码如下: df -h 代码如下: Filesystem Size Used Avail Use% Mounted on /dev/mapper/dev01-root 75G 58G 14G 82% / udev 2.0G 4.0K 2.0G 1% /dev tmpfs 396M 292K 396M 1% /run none 5.0M 0 5.0M 0

Linux系统中与中文显示相关的一些编码设置方法

  对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少一些.因此,很多稍微有英语基础的Linux用户都宁愿使用英文界面的系统.但是,矛盾又突现出来:在英文系统下,如何才能正常显示和输入中文呢?有没有两全其美的方案呢?因此,笔者开

Linux系统中ln命令创建软链接与硬链接的方法

Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(user data) 与 元数据(metadata) 用户数据里记录了文件的真正内容. 元数据里记录的是文件的附加属性,如 文件大小,创建时间,所有者等,其中 上面提到的 index node 就保存在元数据中.在linux 中文件名并不是文件的唯一标识,index onde 才是唯一标示,系统查找文件也是通过 index node 来查找内容数据块. 如何查看文件

Win7系统中Web浏览器阻止activex控件的解决方法

Win7系统中,当我们打开浏览器观看一些视频或者Flash文件时会被提示您的Web浏览器已经阻止此站点不安全的ActiveX控件.因此,可能此页显示不正确或视频无法收看.那么出现这种情况要怎样解决呢. 第一步:打开浏览器,然后选择菜单栏上"工具"选项,选择"工具"选项之后,选择下拉菜单的"Internet选项". 第二步:打开Internet选项之后,切换到安全选项卡,然后选择安全选项卡下的自定义级别. 第三步:单击自定义级别之后打开安全设置窗口

动态创建script在IE中缓存js文件时导致编码的解决方法_javascript技巧

先看下重现代码 1, gb2312.html 该文件编码为gb2312 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title></title> <meta charset="gb2312"/> <style> p { color: red; } </style> </head> <body> <button onclic

git 系统中 post-receive 钩子不能正常执行 git pull 解决方法

有一个需求是本地git在push到远程 git repo 之后,在远程服务器上自动在/dir/foo下执行 git pull 的操作.想来是一个很简单的需求,不就是在远程的 foo.git 仓库中的 hook 里加一个 post-receive 的钩子,然后在钩子里加入一个 git pull 的操作.但是实际操作的时候发现有问题的,因为这样忽略了一个小细节的问题. 操作之前,头脑里想的代码如下: #!/bin/sh cd /var/git/web3/etc/puppet /usr/bin/git

Linux系统SureHA集群oracle脚本问题测试及解决方法

其中需要监控脚本.   ec01_watch.sh内容如下(根据实际情况将ec01替换为客户实例名):    代码如下 复制代码 check=`ps -eaf |grep ora_pmon_ec01 |grep -v grep |awk '{print $2}'`  while [ $check ]  do   sleep 3   check=`ps -eaf |grep ora_pmon_ec01 |grep -v grep |awk '{print $2}'`  done 数据库正常启动后,

Linux下tar命令的简单使用及相关错误解决方法

  tar 是Linux 下最常用的打包.压缩工具,它在Linux 中扮演类似于WinZip 或WinRAR 在Windows 下的角色.下面是该工具的常用命令参数及运用举例: 主要命令: -c 创建包 -x 解包 -t 列出包中的内容 -r 增加文件到指定包中 -u 更新包中的文件 可选命令: -j 创建或解开包时 使用bzip2 进行压缩或解压; -z 创建或解开包时 使用gzip 进行压缩或解压; -Z 创建或解开包时 使用compress 进行压缩或解压; -f 后面跟指定的包文件名;

详解Linux系统中md5sum命令的用法

  这篇文章主要介绍了详解Linux系统中md5sum命令的用法,用来处理MD5验证的相关操作,需要的朋友可以参考下 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的"指纹"(或称"报文摘要"),不同的文件产生相 同的报文摘要的可能性是非常非常之小的. 在linux或Unix上,