小编Art*_*tch的帖子

热点JIT优化

在关于Hotspot中的JIT的讲座中,我想尽可能多地给出JIT执行的特定优化的示例.

我只知道"方法内联",但应该有更多.为每个例子投票.

java jit compiler-optimization

16
推荐指数
4
解决办法
4576
查看次数

SSL握手问题

我们的服务器应用程序在某些客户中极度缓慢.服务器重启会解决缓慢问题,但几周后它会恢复.

Java CPU总是大约100%(200%),所有其他参数都很好.研究表明,大多数CPU都被"HandshakeCompletedNotify-Thread"线程所消耗.从tcp dump我们看到SSL握手需要2-8秒,这很长,有时会抛出超时.

我们的SSL提供商是BSAFE.服务器在Linux(CentOS)上运行,640 MB堆,2个核心.使用Hibernate,spring,Oracle本地db

这种行为可能是什么原因?找到它们可以做些什么?

PS我们无法在客户处将流量切换为HTTP.

更新:当使用IP表阻止java进程的传出连接时,系统完全释放.在这种情况下释放了什么资源?我们看到SSL握手经常陷入"改变密码规范"阶段.客户端(我的java进程)尝试重用SSL会话,但服务器完全无状态,每次都会生成新的会话.

java security performance ssl

5
推荐指数
1
解决办法
6835
查看次数

如何强制 tomcat 重新加载受信任的证书?

我的 Web 应用程序使用 2 向 SSL 连接器(也称为“客户端身份验证”):

<Connector port="8084" SSLEnabled="true" maxThreads="10" minSpareThreads="3" maxSpareThreads="5"
             enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true"
             clientAuth="true" truststoreFile="conf/keystore.kst" truststoreType="JCEKS" sslProtocol="TLS" URIEncoding="UTF-8"
             keystoreFile="conf/keystore.kst" keystoreType="JCEKS" keyAlias="myAlias"
             ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA"/>
Run Code Online (Sandbox Code Playgroud)

我的问题是,当 Tomcat 服务器正在运行并且我使用新的受信任证书更新密钥库,甚至从中删除受信任证书时,连接器不会注意到这些更改。

到目前为止我尝试过的:

1)停止、重新初始化(反射)和启动连接器 - 不起作用。

2) 实现我自己的 SSLContext,从密钥库重新加载证书。好吧,这里我遗漏了向 tomcat 注册此 SSLContext 的部分(以便 tomcat 将在连接器中使用它来进行新的传入连接)

关于这个问题有很多帖子,但没有真正的解决方案:

http://www.delphifaq.com/faq/f5003.shtml

http://jcalcote.wordpress.com/tag/truststore
(本文仅介绍如何从客户端重新创建 SSLcontext(缺少服务器端))

有任何想法吗?

还有另一个相关问题:

如何强制 Tomcat Web 应用程序在更新后重新加载信任存储

但答案还不够,因为我不想构建新的类加载器。

谢谢。

java security ssl tomcat keystore

5
推荐指数
1
解决办法
1万
查看次数

Java垃圾收集"真实"时间比"用户"+"系统"大得多

这就是使用详细gc启用的完整gc的样子 -

13463.547: [Full GC [PSYoungGen: 323053K->0K(325952K)]
           [PSOldGen: 653170K->331738K(655360K)] 976224K->331738K(981312K)
           [PSPermGen: 238715K->238715K(264448K)], 385.4631490 secs]
           [Times: user=2.19 sys=1.35, real=385.50 secs]
Run Code Online (Sandbox Code Playgroud)

实时如何比user + sys大得多?

我的第一个想法是垃圾收集器正在等待资源,但是这个资源似乎不是IO或CPU,因为"顶部"输出在gc发生时不显示任何cpu或内存问题.

java performance garbage-collection

5
推荐指数
1
解决办法
1619
查看次数

Java中的系统测试框架

在java中寻找系统测试的框架.我们有一个在tomcat(Spring,Hibernate等)下运行的Web应用程序,它有一个定义良好的API,可以很容易地以RMI(或任何其他方式)公开.

我们想测试这个API.框架应测试正在运行的服务器.测试将由Jenkins触发,或由开发人员或QA Automation运行.

大多数测试都是由开发人员编写的,因此我们希望它们与他们熟悉的类似(java,以上列出的所有技术).性能测试能力是一个优势.

任何成功/失败的故事或提示将不胜感激.

java testing system-testing

5
推荐指数
1
解决办法
3343
查看次数

Hadoop 2中的自定义log4j appender

如何在Hadoop 2(amazon emr)中指定自定义log4j appender?

Hadoop 2忽略我的log4j.properties文件,该文件包含自定义appender,用内部lo​​g4j.properties文件覆盖它.有一个标志-Dhadoop.root.logger指定日志记录的阈值,但它并不能帮助定制的appender.

java hadoop log4j amazon-emr

4
推荐指数
1
解决办法
4090
查看次数

Java减少堆栈大小以节省内存

我想减少Java应用程序的内存占用,以减少交换.为此我一直在考虑减少堆栈大小(Xss参数),但不确定如何分配堆栈内存以及每个线程的默认512k(对于32位操作系统)是否始终位于驻留内存中,无论其多少实际使用过.

减少堆栈内存会导致交换减少吗?

更新:请不要建议配置应用程序 - 它已经完成.

java memory performance jvm

0
推荐指数
1
解决办法
1129
查看次数

Java中灵活的日志解析器库

该库将以不同的,有时是专有的格式接收日志文件(tomcat和其他的访问日志),并且应该解析它们并提取某些字段 - 如时间戳,ip等...

开源或专有解决方案都是可以接受的.

java logging parsing

-1
推荐指数
1
解决办法
5267
查看次数