Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何改进在Tomcat上运行的Java进程_Java_Linux_Multithreading_Tomcat8_Nice - Fatal编程技术网

如何改进在Tomcat上运行的Java进程

如何改进在Tomcat上运行的Java进程,java,linux,multithreading,tomcat8,nice,Java,Linux,Multithreading,Tomcat8,Nice,我正在使用REST前端创建一个Java应用程序,因此必须具有响应性,偶尔(X分钟)会有另一个服务轮询internet。为此,产生了数百个线程 不用说,当数百个线程在运行时,服务器速度会减慢(即不负责任)。我找到了一个向线程提供setPriority参数的选项。但也发现了一些缺陷,这意味着前端非常不负责任,尽管没有Java nicing似乎更好。 所以我在检查我的选项:1)刻线;2) 打一场战争(找不到这样的选择)3)生下另一只雄猫,那只很好,这是可能的,但我会失去宝贵的资源。可能会将线程池分

我正在使用REST前端创建一个Java应用程序,因此必须具有响应性,偶尔(X分钟)会有另一个服务轮询internet。为此,产生了数百个线程

不用说,当数百个线程在运行时,服务器速度会减慢(即不负责任)。我找到了一个向线程提供setPriority参数的选项。但也发现了一些缺陷,这意味着前端非常不负责任,尽管没有Java nicing似乎更好。

所以我在检查我的选项:1)刻线;2) 打一场战争(找不到这样的选择)3)生下另一只雄猫,那只很好,这是可能的,但我会失去宝贵的资源。可能会将线程池分配给核心的子选择?

我的问题主要是一些有用方向的指针,最好是选项1,然后是选项2等等。或者,当然,我没有提到的一些东西,导致其他线程占用一些专用的cpu时间。

我可以通过编辑

/etc/systemd/system/tomcat.service

只需添加一个
Nice=10
或任何您想要的精确级别。所有进程都应该继承父进程的优先级。

当数百个线程轮询Internet时,为什么您的服务器没有响应?它们大多会在读取或连接中被阻塞。如果你有一个以线程优先级为解决方案的问题,那么你通常会遇到完全不同的问题。除了轮询internet之外,还会对结果进行分析,并对照数据库(是否已经存在)进行检查,以进行翻译和填充。我知道轮询本身并不耗费cpu,但这并不是全部……为什么要有数百个线程而不是几个工作线程扫描查询列表,特别是因为该集合只需每X分钟运行一次?(我还要检查你的“分析和检查数据库”是否过度同步,但减少线程数量似乎是第一步。)当我在澳大利亚或日本(因为我来自荷兰)进行投票时,大约需要200毫秒(ping),所以我需要更多的线程。此外,我不认为这与这个问题有什么关系。无论我在做什么,我都希望将我的机器的某些部分专用,以便在处理新请求时,就像服务器不忙一样。我可以使用1个线程进行轮询,但是空闲时间太长,轮询数千个提要会花费太长时间。