我正在使用Centos 6.5 64位内核2.6.32和64 GB RAM和12个线程核心的服务器,我无法获得当前在memcache中使用的连接。 这是我的STATS输出: # echo stats | nc 127.0.0.1 11211 STAT pid 356091 STAT uptime 440 STAT time 1409760961 STAT version 1.4.20 STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 1.747734 STAT rusage_system 3.660443 STAT curr_connections 64 STAT total_connections 133 STAT connection_structures 64 STAT reserved_fds 60 STAT cmd_get 123537 STAT cmd_set 63080 […]
对于使用普通/etc/security/limits.conf机制的用户禁用核心转储限制: # ulimit -a core file size (blocks, -c) unlimited 但是,运行segfaulttesting显示没有核心被倾倒: /tmp/a.out Segmentation fault 没有“核心转储”信息。 人力资源pipe理。 /etc/security/limits.conf如下所示: username – core unlimited 有没有人遇到过这个? 这是SLES中的一个错误吗? 谢谢。
充其量我可以用shell会话来描述这个问题: 这表明ulimit工作正常。 这是正常的ssh会话的开始: $>ulimit -c 0 (ushanka:973:0) ~ $>ulimit -c unlimited (ushanka:974:0) ~ $>screen -t question <– see next preformated section for screen session –> [screen is terminating] (ushanka:976:0) ~ $>ls -alh /usr/bin/screen -rwxr-sr-x 1 root screen 353K Dec 4 2006 /usr/bin/screen (ushanka:977:0) ~ $>ulimit -c unlimited 这是为核心设置了一个像硬限制0一样的突发行为的屏幕实例。 $>ulimit -c 0 (ushanka:973:0) ~ $>ulimit -c […]
TL; DR:渴望CPU的进程在多核服务器上共享核心,而其他核心处于空闲状态,而我期望Linux调度程序在核心之间均匀分配作业。 什么可能导致这种行为? 我的工作组有一个新的运行SuSE的4核服务器,它正在经历一些奇怪的CPU调度行为,我们的pipe理员(设置这个盒子的人)不知道,似乎无法修复。 我希望你们都能帮助我诊断可能导致这种奇怪行为的原因。 这是症状: 1)每个SSH会话似乎都局限于使用单个核心。 我已经testing了多种方法,但最简单的是创build一个简单的无限循环C程序并运行多个副本。 如果从单个SSH会话开始,它们总是共享一个核心,我甚至无法控制哪个核心; 它似乎是在login时设置。 而且,即使使用多个同时进行的SSH会话,我能够以这种方式使用的唯一核心是核心0和核心3; 1和2永远不会感动,无论我开始多less会话或进程。 2)如果从上面提到的SSH会话中,我以“nohup”开始与当前会话分离的程序,它将使用与该会话中启动的其他程序不同的核心。 但是,所有来自同一SSH会话的nohup-started程序都将再次共享一个核心。 有趣的是,这些nohup-started程序总是分配给核心1和核心2。 当然,预期的行为是我在其他Linux系统(我大多熟悉RHEL,Fedora和Ubuntu)时总是看到的:我应该能够在使用或不使用单个会话的情况下使用所有4个内核nohup的; 此外,作业应偶尔跳转核心来平衡它们之间的加载时间。 下面是在一个核心上运行的两个进程的例子: http : //i.imgur.com/K9rH3.png (对不起,不能直接发布图片,即使我在其他StackExchange网站上有足够的信誉)。 请注意,如果单独运行,每个“烧录”进程占用一个内核的100%,但是由于某种原因,这里它们共享一个内核,而三个内核处于空闲状态。 另外请注意,这两个进程共享超过20分钟的“Cpu3”核心,而不改变到另一个核心来平衡负载(这是图像拍摄后,20分钟后,我停止观看)。 当遇到这个问题时,我首先想到的是“ulimit”是有效的,但是对我的(不可否认的)眼睛来说看起来并不是这样: dmonner@bass:~> ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 128465 max locked […]
所以,我们的软件可能会有某种程度的漏洞。 我们正在使用Mono,并在几个星期/几个月的时间内产生许多进程。 最终,我们不能在我们的客户机器上产卵。 通常需要20个小时才能停止。 closures并重新打开我们的应用程序修复它。 当产卵失败时,整个系统运行的总进程less于500个,并且在整个系统上less于1000个文件句柄。 ulimits文件被设置为高ISH水平,我相信过程限制是8K左右。 我们正在运行CentOS 6.2。 如果我们正在泄漏这些PID或句柄,标准的ps和lsof命令只是不显示它们(都不是/ proc),我需要一种方法来挖掘内核或其他东西,看看目前的值是什么限制testing。 一旦我们确认了这个问题,我就可以尝试破译造成这件事情的有趣任务了…但是那又来了一天。 据我们所知,这个应用程序在许多许多其他的Linux机器上工作,没有任何问题(其他客户没有向我们报告这个问题)。 任何想法,我怎么能findulimit设置的指标的价值? 我拼命地希望自己不必编写C程序,但是如果有必要的话,我还没有做过。
阿帕奇昨晚去世了。 错误日志显示这一点 [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48 浏览互联网,每个人似乎都认为这是在Linux的ulimit问题。 如果我理解正确,ulimit有一个默认的限制到任何非root用户并发进程的数量为1024.如果达到用户(在这种情况下,apache)的最大数量,它不能创build更多的进程。 这就解释了为什么当它试图产生一个新的孩子时,它不能设置给apache用户。 昨天晚上,我们有一个networking应用程序的用户在大约1分钟的时间内向同一页面发出了1100多个GET请求,这就是服务器死亡的时间。 我的Apacheconfiguration文件有这样的: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 2000 MaxClients 2000 MaxRequestsPerChild 4000 </IfModule> KeepAlive On MaxKeepAliveTimeout 5 KeepAliveTimeout 5 如果我的MaxClients是2000,MaxSpareServers是20,那么这意味着为了让Apache达到进程的限制,它将不得不有1000多个繁忙进程,我根本没有看到发生这种情况,考虑到这些GET请求很小,很容易处理20-30个请求。 最重要的是,MaxRequestsPerChild被设置为4000,所以它不应该产生这么多新的孩子,对吧? 那么,为什么它不能setuid,这真的是罪魁祸首吗? 我已经使用了Apache的ab工具来尝试在一个不太强大的本地构build中重现这一点,我不能。 即使是function不太强大的硬件,也可以在一分钟内处理好几千个连接,性能也不错 如果我尝试通过networking同时访问服务器,它会变得糟糕,但Apache不会陷入困境。 所以这是我的问题: 有没有更好的方式来configurationprefork模块? 我们只是从旧的服务器迁移到这个较新的服务器。 老一点的ServerLimit和MaxClients设置为512.我想也可以设置2000,以避免在可预见的将来再次改变它。 我已经尝试调整ulimit nproc到一个低数字来尝试和重现错误。 在limits.conf中,我设置了* hard nproc 15 […]
我正在运行简单的R作业由root和另一个有限的用户。 执行时间差别很大。 什么是问题的根源? 更多信息 下面是我如何比较运行时间: # time /share/binary/R/bin/R CMD BATCH s1n\=50.R real 0m0.278s user 0m0.217s sys 0m0.032s # su john $ time /share/binary/R/bin/R CMD BATCH s1n\=50.R 在john用户下运行需要很长时间,永远不会结束! 在这段时间内, perf的输出是: PerfTop: 906 irqs/sec kernel:19.3% exact: 0.0% [1000Hz cycles], (all, 8 CPUs) ————————————————————————————————————————————————————- samples pcnt function DSO _______ _____ _____________________________ _______________________________ 598.00 14.5% __GI_vfprintf /lib64/libc-2.12.so 194.00 4.7% […]
对于一个实验,我试图通过libvirt启动尽可能多的虚拟机,但是有超过1000个虚拟机正在运行,我得到一个错误:“无法创buildpipe道:太多打开的文件”。 任何想法如何解决这个问题? 我已经把所有用户的ulimit软限制设置为4096,但是在检查/ proc /'libvirt守护进程的进程pid'/限制它仍然说软限制是1024(硬限制设置为4096)。 当通过“ulimit -Sn”或“ulimit -Hn”检查任何用户的ulimit时,限制似乎按照预期设置。 这在Ubuntu 12.04服务器上发生,使用libvirtd 0.9.8
我有一个CentOS 6.4服务器,当我运行ulimit -a作为根我得到这个: core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 92905 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) […]
我正在使用hadoop,需要改变打开的文件ulimit -n 。 我已经看到了类似的问题在stackoverflow和其他地方,并试图在这些答案的一切,但它仍然无法正常工作。 我正在使用ubuntu 12.04 LTS 。 这是我所做的: 改变/etc/security/limits.conf限制,我已经把*和root设置。 我也改变了一些像10000和unlimited数量的限制。 * soft nofile 1513687 * hard nofile 1513687 root soft nofile 1513687 root hard nofile 1513687 我也试过以上的设置-而不是soft 。 经过这些更改之后,我对/etc/pam.d/文件进行了更改,例如: common-session common-session-noninterative login cron sshd su sudo 我已经添加session required pam_limits.so到每个文件的开头。 我重新启动了这个盒子,设置没有生效。 我还发现用户hbase mapred和hdfs在/etc/security/limits.d/目录中有文件。 我试图在这些单独的文件中更改限制也无济于事。 我已经尝试在/etc/profile放入ulimit -S -n unlimited 。 它不起作用。 最后,我已经尝试把limit nofile unlimited unlimited内/etc/init.d/hadoop*文件作为第一行。 不工作。 […]