任何人都知道云中的位置,您可以创建(虚拟)机器(如Amazon EC2)用于计算任务 - 提供数量(至少5-10)个免费计算机的位置,如果它们用于测试打开源项目?
我不是免费为开源项目寻找像Jenkins,Hudson,TeamCity等CI环境的地方.我正在寻找一个可以运行某些服务器的地方,我可以在集群和分布式环境中设置开源系统.然后从自动化测试(例如,从CI环境执行)开始针对该集群和分布式环境的测试.
open-source distributed-computing cluster-computing virtual-machine
我有一个并发系统,涉及许多机器/节点.每台机器运行几个JVM做不同的东西.它是一个"分层"架构,每个层都包含许多运行在机器上的JVM.基本上,顶层JVM通过文件从外部接收输入,解析输入并在第二层中为"存储"发送尽可能多的小记录.第二层实际上并不保留数据本身,但实际上它仍然存在于第三层(HBase和Solr)中,并且HBase实际上并不持久保存它,因为它将它发送到第四层(HDFS)以实现持久性.
层之间的大多数通信是同步的,因此它当然会在很多线程中等待较低层完成.但我希望那些等待的线程能够"免费"使用CPU.
我看到一个非常高的iowait(顶部%wa) - 像80-90%的iowait和只有10-20%的sys/usr CPU使用率.系统似乎已经筋疲力尽 - 通过ssh登录速度慢,对命令响应速度慢等.
我的问题是,所有那些等待较低层完成的JVM线程是否会导致这种情况?它不应该是"免费"等待响应(套接字).对此有关重要,不同的层是否使用阻塞或非阻塞(NIO)io?究竟在什么情况下Linux算作iowait(%wa在顶部)?当机器上所有JVM中的所有线程都处于等待状态时(因为在此期间没有其他线程可以运行以执行某些有意义的操作)?或者即使有其他进程准备好使用CPU进行实际处理,线程等待也会计入%wa?
我真的想彻底解释它是如何工作的以及如何解释这个高%wa.在开始时我猜想当所有线程都在等待时它会被计为%wa,但实际上还有足够的空间来做更多,所以我试图增加线程数量,期望获得更多吞吐量,但这不会发生.所以这是一个真正的问题,而不仅仅是看顶部的"视觉"问题.
以下输出取自仅运行HBase和HDFS的计算机.它在HBase和/或HDFS的机器上显示的问题(最清楚)
--- jps ---
19498 DataNode
19690 HRegionServer
19327 SecondaryNameNode
---- typical top -------
top - 11:13:21 up 14 days, 18:20, 1 user, load average: 4.83, 4.50, 4.25
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie
Cpu(s): 14.1%us, 4.3%sy, 0.0%ni, 5.4%id, 74.8%wa, 0.0%hi, 1.3%si, 0.0%st
Mem: 7133800k total, 7099632k used, 34168k free, 55540k buffers
Swap: 487416k total, 248k used, 487168k free, 2076804k cached
PID USER PR NI …Run Code Online (Sandbox Code Playgroud) 我有连续生成的pcap文件给我.它想要不断地将它们送到"永远在线"的tshark/wireshark.这是我尝试过的(OSX)
mkfifo tsharkin
tail -f -c +0 tsharkin | tshark -l -i - > tsharkout 2>stderr &
cat file1.pcap > tsharkin
Run Code Online (Sandbox Code Playgroud)
以上工作正常,我从tsharkout中的file1.pcap得到预期的输出
cat file2.pcap > tsharkin
Run Code Online (Sandbox Code Playgroud)
以上不起作用,我在tsharkout中什么都没得到,但是我在stderr中得到"1包丢弃"+"3包捕获"
cat file2.pcap > tsharkin
Run Code Online (Sandbox Code Playgroud)
再次尝试使tail/tshark进程停止/崩溃
我尝试再次这样做,但这次先使用file2.pcap然后再使用file1.pcap.这次file2.pcap处理得很好,file1.pcap使tail/tshark进程停止/崩溃.因此,我将得出结论,两个pcap文件没有任何问题,但似乎tshark不喜欢抛出多个pcap文件.
为了测试它,我尝试首先使用mergecap合并file1.pcap和file2.pcap,然后将其输入到tshark
mergecap -F pcap -w file1_2.pcap file1.pcap file2.pcap
cat file1_2.pcap > tsharkin
Run Code Online (Sandbox Code Playgroud)
这工作正常,我得到tsharkout中file1.pcap和file2.pcap的预期输出
问题是我的pcap文件一路走来,所以我不能在将它们全部合并到tshark之前.我需要能够在pcap文件到达时将其提供给"永远运行"的tshark.我怎样才能做到这一点?
concurrency ×1
hadoop ×1
iowait ×1
java ×1
open-source ×1
pcap ×1
sniffing ×1
tshark ×1
wireshark ×1