Articles of 线程

Weblogic线程的使用

我在WebLogic 10.3上部署了一个应用程序,该应用程序performance出一种奇怪的行为。 我在我的应用程序上运行一个常量(不是太高)的负载(20个并发用户,运行一个小活动)。 响应时间是合理的(远低于应用程序稳定后的100ms) 内存消耗似乎很好(我的应用程序创build了很多短生命的对象,但它们被垃圾回收,所以整体内存消耗保持在500 MB以下)。 主题统计看起来也很健康: 然而,在我离开我的testing运行一段时间后,越来越多的执行线程(“[ACTIVE] ExecuteThread:'3',队列:'weblogic.kernel.Default(self-tuning)'”)被创build,直到最终应用程序崩溃: 这个testing还没有运行很长时间(所有在第一个屏幕截图中看不到的新线程都是在我写这个问题的时候创build的),而且我看到更多的线程正在创build。 任何想法为什么这些线程正在创build?

Hung Java JVM无法响应kill -3

我有一个“随机”悬挂的Java虚拟机。 我引用了这个随机的一点,因为显然有一个虚拟机悬挂的原因,但是挂起并不是周期性的。 我们有相同的软件运行在不同的客户环境中,在这些环境中,JVM并没有挂起。 在尝试排除挂起故障的过程中,存在CPU利用率为零的过程。 然后我尝试执行kill -3并终止kill命令。 没有JVM线程转储产生。 我花了很多时间来testing代码,以定期logging希望抓住JVM的线程堆栈跟踪,以显示问题出在哪里,但到目前为止,这种尝试还没有产生太多的成果。 不幸的是,我还没有能够在我的实验室环境中重现这个问题,所以我受限于在客户网站上可以做的事情。 有问题的操作系统是运行Java 1.6.0_05-b13版的Red Hat Enterprise 5.4和SUSE 10 有没有人有这个问题? 关于为什么kill -3无法产生Java线程转储的任何想法? 谢谢!

我如何监控Jboss线程来实时查看响应时间和等待时间

当JBoss提供请求时,我们正面临着性能下降的问题。 我们有一个Web服务器路由请求到应用程序服务器,我们可以看到JBoss的JVM的问题。 我如何监控Jboss线程以实时查看响应时间和等待时间? 有没有什么工具可以帮助我们看看所有线程运行的情况(比如说在两秒钟内的正常情况下)以及它们的响应时间。

启动程序一次导致10个实例

我有一个旧的SUSE 8.1服务器,刚刚开始疯狂。 如果我一次启动一个程序: /usr/local/jdk1.6.0_21/bin/java -cp example-ser-0.8.jar:/usr/local/lib/java/slf4j-api-1.6.1.jar:/usr/local/lib/java/logback-core-0.9.24.jar:/usr/local/lib/java/logback-classic-0.9.24.jar:/usr/local/lib/java/jcl-over-slf4j-1.6.1.jar:/usr/local/lib/java/commons-cli-1.2.jar:/usr/local/lib/java/commons-lang-2.5.jar:/usr/local/lib/java/mysql-connector-java-5.1.13-bin.jar:/usr/local/lib/java/xBaseJ-20091203.jar:/usr/local/lib/java/Translator-0.7.0.jar:/usr/local/lib/java/antlr-3.2.jar:/usr/local/lib/java/joda-time-1.6.jar -Dlogback.configurationFile=logback-test.xml example.ser.Scanner abc12345 将会有10个实例运行(相同的用户,相同的参数),如ps ax -l | grep Scanner ps ax -l | grep Scanner : FS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 000 S 502 20228 20227 0 75 0 – 98222 rt_sig pts / 11 0:00 /usr/local/jdk1.6.0_21/bin/java -cp /usr/local/lib/java/example-ser-0.7.jar:/ USR / […]

如何限制Tomcat线程的数量?

我有一个运行在低内存CentOS上的tomcat 7。 目前它有2个连接器用于端口80和443.重要的configuration选项是: <Connector port="80" protocol="HTTP/1.1" executor="tomcatThreadPool" connectionTimeout="10000" keepAliveTimeout="60000" <Connector port="443" protocol="HTTP/1.1" executor="tomcatThreadPool" SSLEnabled="true" scheme="https" secure="true" connectionTimeout="10000" keepAliveTimeout="60000" 这两个连接器都绑定到执行程序: <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="100" minSpareThreads="3" maxIdleTime="120000" /> 当tomcat第一次启动时,它启动大约50个线程。 经过大约15-20个用户连接到Web应用程序,它增加到约60.(我使用命令ps -eLf | grep java |grep tomcat |wc -l计算tomcat线程) 我每分钟有4个连接,由于我的应用程序的性质,它不超过5个。 所以我想要tomcat启动尽可能less的线程。 由于我configuration了最less3个备用线程并保持2分钟,所以不应该超过20个。 但是我错了。 我如何限制Tomcat线程的数量为20或30的最小值?

在CentOS中升级pthread库的最简单方法是什么?

我正在为我的VPS开发一个deamon。 该程序完美地在本地(有pthread – 2.11.so),但在vps(女巫有pthread-2.5.so),它有一个内存泄漏相关的线程(每个线程使用太多的内存,内存不是免费的线程终止后),在旧的pthreads版本中的一个知道的错误。 但是CentOS版本库并没有更新他们的pthread版本。 什么是将我的pthread.so升级到版本2.11的最佳方式? 谢谢。 编辑:真的,这不是一个内存泄漏,但它只是使用2.5内存比2.11更多(但是当线程被创build它的内存使用是稳定的)。 对不起,我的英语不好。

tomcat6 maxThreads属性被忽略

您好在tomcat6 server.xml我有一个连接器的catalina服务。 而我设置maxThreads = 5: <Service name="Catalina"> <Connector port="8090" maxThreads="5" protocol="HTTP/1.1" /> 但重启tomcat后,我可以看到更多的5个线程创build。 为什么忽略maxThreads属性?

IIS,应用程序域,池,进程和线程,高层次​​的理解

希望如果有人能把这些东西都变成我的潜能。 这是为了更好地理解操作系统的总体情况,也特别是如何适用于IIS。 如何在Web应用程序中应用域,应用程序池,进程和线程? 是这样的: 应用程序池可以有多个应用程序域。 一个域可以有多个进程,每个进程pipe理一个线程池。 线程共享进程中的内存空间。 此外,我对linxu(ubuntu)服务器感兴趣,所以如果它是相似或不同的,有兴趣知道。

mongodb:可以在FreeBSD上创build新的线程?

我们在我们的mongodb网格平台上经历了一些奇怪的事情。 该平台实际上是一个具有128GB内存的双Xeon E5(双核四核),在freebsd 9上运行,并带有专用于mongodb的zfs池。 [root@mongofile1 ~]# uname -sr FreeBSD 9.1-RELEASE 我们的/boot/loader.conf vfs.zfs.arc_min="2048M" vfs.zfs.arc_max="7680M" vm.kmem_size_max="16G" vm.kmem_size="12G" vfs.zfs.prefetch_disable="1" kern.ipc.nmbclusters="32768" /etc/sysctl.conf net.inet.tcp.msl=15000 net.inet.tcp.keepidle=300000 kern.ipc.nmbclusters=32768 kern.ipc.maxsockbuf=2097152 kern.ipc.somaxconn=8192 kern.maxfiles=65536 kern.maxfilesperproc=32768 net.inet.tcp.delayed_ack=0 net.inet.tcp.sendspace=65535 net.inet.udp.recvspace=65535 net.inet.udp.maxdgram=57344 net.local.stream.recvspace=65535 net.local.stream.sendspace=65535 我们遵循以下build议: [root@mongofile1 ~]# su – mongodb $ ulimit -a cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) […]

英特尔2620和2609上debian cpuinfo

我有两个使用以下处理器运行Debian 7的Box。 每个Box都有两个相同的处理器。 英特尔®至强®处理器E5-2620(15M高速caching,2.00 GHz,7.20 GT / s英特尔®QPI) 内核数量6 线程数量12 英特尔®至强®处理器E5-2609 v2(10M高速caching,2.50 GHz) 内核数量4 线程数量4 现在,在两台服务器上运行以下两个命令 – cat /proc/cpuinfo | grep processor cat /proc/cpuinfo | grep processor和lscpu – 我得到框1有0-23和框2有0-8。 这是否符合上述规定,如果是的话,Debian是如何得出这些数字的? 我已经阅读了超线程技术,但似乎没有解释达到这些的原因。 人物。 我很想说Debian是以#threads为基础的 所以箱子 12(#线程)X 2(#处理器)= 24 4(#线程)X 2(#处理器)= 8 但是线程只显示了multithreading应用程序可以访问的并发pipe道的数量。 我认为多年来CPU开发的术语,处理器,sockets和内核已经变得复杂。