我目前正在使用Tomcat6作为开发和生产的Web容器.
我听说Tomcat不是生产环境中性能最佳的Web容器.这是真的?
Tomcat在性能和内存管理方面是否足以在生产环境中使用?
我们的系统拥有大约100到400个用户.
对我来说,更多的是关于如何编写Web应用程序以及Web应用程序内部的操作类型.
即使性能在一个Tomcat实例上存在问题,是否可以集群Tomcat?
谢谢.
Ruby on Rails已经支持已签名的基于cookie的会话很长一段时间了,从那时起就出现了一些加密的实现.Python和PHP也有实现.
Java servlet容器Jetty或Tomcat是否存在这样的野兽?
我们在集群环境中使用PHP实现获得了基于RDBMS的会话的显着性能提升,并且我有兴趣尝试使用我们的Java应用程序(目前使用Jetty 7)之类的东西.
我知道实现这一目标的其他方法(memcached,同步内存缓存),但我相信,对于我们的特殊需求,这种存储方法的局限性(输出前的会话终结,4K cookie大小限制后的高效存储)对于这个特定的应用程序,更简单的部署环境超过了对超级秘密服务器端密钥的依赖.
如果一个实现不存在,有没有人有任何想法,为什么它不会?(例如,Java会话通常大于4K,因此不适合这种存储方法)
该lock语句确保一个线程不进入代码的关键部分,而另一个线程处于临界区.但是,如果工作负载分布在服务器场(例如,少量IIS服务器+负载平衡器),则无法工作.
.NET是否支持这种情况?
是否有任何类可用于控制在多台机器上运行的线程执行关键代码段?
如果没有,是否有任何处理此类问题的标准方法?
此问题的灵感来自于此处开始但不仅限于SharePoint或ASP.NET的讨论.
.net multithreading synchronization cluster-computing server-farm
任何人都知道云中的位置,您可以创建(虚拟)机器(如Amazon EC2)用于计算任务 - 提供数量(至少5-10)个免费计算机的位置,如果它们用于测试打开源项目?
我不是免费为开源项目寻找像Jenkins,Hudson,TeamCity等CI环境的地方.我正在寻找一个可以运行某些服务器的地方,我可以在集群和分布式环境中设置开源系统.然后从自动化测试(例如,从CI环境执行)开始针对该集群和分布式环境的测试.
open-source distributed-computing cluster-computing virtual-machine
我正在运行R中的termstrc收益率曲线分析包,其中包含5个不同国家的10年每日债券价格数据.这是高度计算密集型的,在标准的lapply上每个国家需要3200秒,如果我在2009 i7 mac上使用foreach和%dopar%(使用doSNOW),使用所有4个核心(8个超线程)我将其归结为850秒 每次我添加一个国家(计算国家间利差)时我都需要重新运行这种分析,而且我还有19个国家可以使用,未来会有更多的信用收益曲线.所花费的时间开始看起来像一个主要问题.顺便说一句,有问题的termstrc分析函数在R中访问,但用C语言编写.
现在,我们是一个12人的小公司(预算有限),全部配备8GB内存,i7个电脑,其中至少有一半用于平凡的文字处理/电子邮件/浏览风格任务,即使用5%最大的表现.它们都使用千兆位(但不是10千兆位)以太网联网.
我可以使用MPI对其中一些未充分利用的PC进行集群,并对它们进行R分析吗?网络会受到影响吗?收益率曲线分析函数的每次迭代大约需要1.2秒,因此我假设如果并行处理的粒度是将整个函数迭代传递给每个集群节点,那么与千兆位以太网滞后相比,1.2秒应该是非常大的?
可以这样做吗?怎么样?那会对我的同事产生什么影响呢.我在给他们的机器征税时能否继续阅读他们的电子邮件?
我注意到Open MPI似乎不再支持Windows,而MPICH似乎也是如此.如果有的话,你会用哪个?
也许在每台PC上运行一个Ubuntu虚拟机?
我正在评估Apache Spark,看它是否是满足以下要求的好平台:
阅读了一些关于Spark的内容,我发现了以下优点:
这些是我仍然存在的主要问题:
我也想知道我是不是一般都没有尝试将Spark用于不是专门设计的目的,而不是使用主要优点:MapReduce和内存中的RDD.如果是这样,我也欢迎提出替代方案的建议.非常感谢!
我使用分布式,一个允许并行计算的框架.在这里,我的主要用例是NumPy.当我包含依赖的NumPy代码时np.linalg,我收到一个错误OMP_NUM_THREADS,它与OpenMP库有关.
一个最小的例子:
from distributed import Executor
import numpy as np
e = Executor('144.92.142.192:8786')
def f(x, m=200, n=1000):
A = np.random.randn(m, n)
x = np.random.randn(n)
# return np.fft.fft(x) # tested; no errors
# return np.random.randn(n) # tested; no errors
return A.dot(y).sum() # tested; throws error below
s = [e.submit(f, x) for x in [1, 2, 3, 4]]
s = e.gather(s)
Run Code Online (Sandbox Code Playgroud)
当我使用linalg测试进行测试时,e.gather失败,因为每个作业都会抛出以下错误:
OMP: Error #34: System unable to allocate necessary resources for …Run Code Online (Sandbox Code Playgroud) 我正在使用Express js和Node-cluster来利用集群我还使用PM2进行进程和内存管理.对于一台机器,它工作正常,但我的机器有2个核心,我想提供更多的核心.所以我决定加入另外3台机器,现在所有4台机器都使用LAN连接.我也可以在网络浏览器中使用IP地址访问其他机器.
现在我想连接所有机器并希望共享它们的内核,这样我最终将为我的应用程序提供2 + 6 = 8个内核.怎么可能?是否有任何节点模块可用于实现此目的?谢谢.
我正在使用一个集群(类似于 slurm 但使用condor),我想使用 VS 代码(特别是它的调试器)运行我的代码,它是远程同步扩展。
我尝试在 VS 代码中使用我的调试器运行它,但它并没有像预期的那样工作。
首先,我像往常一样使用 VS 代码和远程同步登录到集群,效果很好。然后我继续使用以下命令获取交互式作业:
condor_submit -i request_cpus=4 request_gpus=1
Run Code Online (Sandbox Code Playgroud)
然后成功地提供了一个节点/gpu 来使用。
一旦我尝试运行调试器,但它以某种方式将我从远程会话中注销(看起来它从打印语句转到头节点)。那不是我想要的。我想在我分配的节点/gpu 的交互式会话中运行我的工作。为什么 VS 代码在错误的地方运行它?我怎样才能在正确的地方运行它?
集成终端的一些输出:
source /home/miranda9/miniconda3/envs/automl-meta-learning/bin/activate
/home/miranda9/miniconda3/envs/automl-meta-learning/bin/python /home/miranda9/.vscode-server/extensions/ms-python.python-2020.2.60897-dev/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/launcher /home/miranda9/automl-meta-learning/automl/automl/meta_optimizers/differentiable_SGD.py
conda activate base
(automl-meta-learning) miranda9~/automl-meta-learning $ source /home/miranda9/miniconda3/envs/automl-meta-learning/bin/activate
(automl-meta-learning) miranda9~/automl-meta-learning $ /home/miranda9/miniconda3/envs/automl-meta-learning/bin/python /home/miranda9/.vscode-server/extensions/ms-python.python-2020.2.60897-dev/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/launcher /home/miranda9/automl-meta-learning/automl/automl/meta_optimizers/differentiable_SGD.py
--> main in differentiable SGD
hello world torch_utils!
vision-sched.cs.illinois.edu
Files already downloaded and verified
Files already downloaded and verified
Files already downloaded and verified
-> initialization of DiMO done!
---> i = 0, …Run Code Online (Sandbox Code Playgroud) Slurm 中有两种分配 GPU 的方式:要么是通用--gres=gpu:N参数,要么是特定参数,如--gpus-per-task=N. 还有两种方法可以在批处理脚本中启动 MPI 任务:使用srun或使用通常的方法mpirun(当 OpenMPI 是使用 Slurm 支持进行编译时)。我发现这些方法之间的行为存在一些令人惊讶的差异。
我正在提交一个批处理作业,其中sbatch基本脚本如下:
#!/bin/bash
#SBATCH --job-name=sim_1 # job name (default is the name of this file)
#SBATCH --output=log.%x.job_%j # file name for stdout/stderr (%x will be replaced with the job name, %j with the jobid)
#SBATCH --time=1:00:00 # maximum wall time allocated for the job (D-H:MM:SS)
#SBATCH --partition=gpXY # put the job into the gpu partition
#SBATCH --exclusive # request exclusive …Run Code Online (Sandbox Code Playgroud) java ×2
slurm ×2
.net ×1
apache-spark ×1
architecture ×1
cloud ×1
cookies ×1
dask ×1
express ×1
gpu ×1
jetty ×1
mpi ×1
node.js ×1
numpy ×1
nvidia ×1
open-source ×1
openmpi ×1
performance ×1
platform ×1
python ×1
r ×1
server-farm ×1
session ×1
tomcat ×1