我有一个以下格式的数据文件.
/foo.jsp 1234
/bar.jsp 6653
/foobar.jsp 9986
/bar.jsp 2221
/foo.jsp 5643
Run Code Online (Sandbox Code Playgroud)
我想在Gnuplot中绘制此文件,其中x轴上的抽搐从第一列获取,而y轴上的值来自第二列.为了说明我希望图表看起来像这样:
10000 x x
5000 x x x
0 /foo.jsp /bar.jsp /foobar.jsp
Run Code Online (Sandbox Code Playgroud)
其中x是图表中的点.
我设法做的最好的是:
plot "datafile.dat" using 2:xticlabel(1) with points
Run Code Online (Sandbox Code Playgroud)
但是,该命令重复第一列中每个值的抽搐(即我在x轴上得到两个/foo.jsp抽搐).我希望第一列中的每个唯一字符串都有一个唯一的tic.
我正在使用G1GC,jdk 1.7
Java HotSpot(TM) 64-Bit Server VM (24.79-b02) for linux-amd64 JRE (1.7.0_79-b15), built on Apr 10 2015 11:34:48 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 32826020k(12590436k free), swap 33431548k(33358800k free)
CommandLine flags: -XX:AutoBoxCacheMax=3000000 -XX:+DisableExplicitGC
-XX:G1NewSizePercent=20 -XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=10737418240
-XX:InitiatingHeapOccupancyPercent=70 -XX:MaxDirectMemorySize=1073741824 -XX:MaxGCPauseMillis=1000
-XX:MaxHeapSize=10737418240
-XX:-OmitStackTraceInFastThrow -XX:+PrintGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+UnlockExperimentalVMOptions
-XX:+UseCompressedOops -XX:+UseG1GC
Run Code Online (Sandbox Code Playgroud)
大多数小型GC工作正常,但它仍然开始异常的fullGC,一小时大约一到两次.
这是年轻GC日志的正常情况
3443.100: [GC pause (young), 0.3021260 secs]
[Parallel Time: 277.6 ms, GC Workers: 4]
[GC Worker Start (ms): Min: 3443100.5, Avg: 3443100.6, Max: 3443100.6, …Run Code Online (Sandbox Code Playgroud) 当使用jsch版本0.1.51连接到远程主机时,我们在调用Channel.connect()a 时偶尔会遇到以下异常ChannelExec.
com.jcraft.jsch.JSchException: channel is not opened.
at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:765)
at com.jcraft.jsch.Channel.connect(Channel.java:151)
at com.jcraft.jsch.Channel.connect(Channel.java:145)
Run Code Online (Sandbox Code Playgroud)
我们在创建会话后使用的代码是:
ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("echo hello");
channel.connect(); // Error here
Run Code Online (Sandbox Code Playgroud)
该Channel.connect()调用通常在100毫秒内返回,但是当出现此错误时,调用会在抛出异常之前挂起超过20秒.
我正在使用以下命令行参数启动Java应用程序:
java -Dcom.sun.management.jmxremote.port=12312 \
-Dcom.sun.management.jmxremote.rmi.port=12313 \
-Dcom.sun.management.jmxremote.authenticate=false \
Main
Run Code Online (Sandbox Code Playgroud)
我的程序立即退出,我收到以下错误:
错误:代理抛出异常:java.lang.NullPointerException
我在Windows 7上使用Java 8 update 45:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud) 我们已经开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算.我们现在要解决的一个主要问题是如何在这个分布式环境中管理我们的日志文件.我们目前有以下设置.
我们的平台分布在8台机器上.在每台机器上,我们有12-15个进程,使用java.util.logging记录分离日志文件.在这个平台上,我们有自己的应用程序,使用log4j和日志来分隔文件.我们还将stdout重定向到一个单独的文件以捕获线程转储等.
这导致大约200个不同的日志文件.
截至目前,我们没有工具来协助管理这些文件.在下列情况下,这会给我们带来严重的麻烦.
我们事先没有在出现问题的过程中知道故障排除.在这种情况下,我们当前使用ssh登录每台机器并开始使用grep.
通过定期检查日志中的任何异常情况来尝试主动.在这种情况下,我们当前还登录到所有计算机并使用less和查看不同的日志tail.
设置警报.我们希望在超过阈值的事件上设置警报.这看起来很痛苦,需要检查200个日志文件.
今天我们每秒只有大约5个日志事件,但随着我们将越来越多的代码迁移到新平台,这将会增加.
我想问社群以下问题.
非常感谢.
更新
我们最终评估了Splunk的试用版.我们对它的工作方式非常满意并决定购买它.易于设置,快速搜索和技术倾向的大量功能.我可以推荐任何类似情况的人来检查一下.
我们使用maven版本插件通过定期的mvn版本保持我们的版本最新:use-latest-versions.在我们的poms中,我们对另一个POM具有导入作用域依赖关系,如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>se.company.maven</groupId>
<artifactId>maven-third-party-dependencies</artifactId>
<version>0.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
当我们运行mvn版本时:use-latest-versions我们所有的依赖项(以及dependencyManagement中的其他条目)都会被加强,除了这个.有没有办法让版本插件加强这种条目?
当使用Java 8流时,我经常发现我需要重构一个多语句lambda表达式.我将用一个简单的例子来说明这一点.假设我已经开始编写这段代码:
Stream.of(1, 3).map(i -> {
if (i == 1) {
return "I";
} else if (i == 3) {
return "E";
}
return "";
}).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
现在我不太喜欢map通话中的大型lambda表达式.因此,我想把它重构出来.我看到两个选项,要么我Function在我的班级中创建一个实例:
private static Function<Integer, String> mapper = i -> {
if (i == 1) {
return "I";
} else if (i == 3) {
return "E";
}
return "";
};
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
Stream.of(1, 3).map(mapper).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
或者我只是制作一个方法:
private static String map(Integer i) {
if (i == 1) {
return "I";
} else if …Run Code Online (Sandbox Code Playgroud)