我有一个配置了JMXRemote参数的tomcat实例.本地VisualVM能够在CPU上获取采样器,但不能用于内存.内存按钮显示为灰色,显示:"内存采样:不可用.无法连接到目标应用程序.请确保应用程序在受支持的JDK 6或JDK 7上运行"
JMXRemote参数:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)
Tomcat JDK版本:
JDK1.6.0.30
Run Code Online (Sandbox Code Playgroud)
VisualVM版本:
Version: 1.6.0_30 (Build 1320-110325); platform 110131-9c8b3bfb3a1e
System: Windows Server 2008 R2 (6.1) , amd64 64bit
Java: 1.6.0_30; Java HotSpot(TM) 64-Bit Server VM (20.5-b03, mixed mode)
Vendor: Sun Microsystems Inc., http://java.sun.com/
Environment: Cp1252; en_US (visualvm)
Userdir: C:\Users\Administrator\AppData\Roaming\.visualvm\7
Clusters: C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\platform
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\visualvm
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\profiler
Run Code Online (Sandbox Code Playgroud)
Tomcat版本:
Tomcat 6.0.32
Run Code Online (Sandbox Code Playgroud)
我在win server 2008上运行VisualVM和Tomcat.我做错了什么?
创建事件源映射时出错:配置模糊定义.如果前缀对于相同的事件类型重叠,则在两个规则中不能具有重叠的后缀.
我在6-7天前从GUI控制台创建了一个事件,它运行正常.第二天事件刚刚失踪,我无法再在Lambda控制台GUI上看到它.但每个S3对象仍然似乎触发lambda函数不是问题.如果我看不到,那就不好了; 所以我删除了Lambda函数,在创建另一个新函数之前等了5-10秒.现在,当我尝试创建这样的事件源时,我收到相同的内容:
当我单击"提交"时,事件源选项卡显示"您没有此功能的任何事件源",Lambda不会被触发; 这意味着整个应用程序流程现在已经崩溃:(
问题几乎与:" https://forums.aws.amazon.com/thread.jspa?messageID=670712 "但不知何故我不能回复该线程,所以我在这里创建了一个新线程.谁有人遇到这个问题?
事实上,我尝试回应现有的AWS论坛帖子:https://forums.aws.amazon.com/thread.jspa? messageID = 670712 , 但我一直收到这个有趣的错误:"你的邮件配额已达到. 请稍后再试.".我甚至没有张贴任何东西,我怎么能用完我的配额?
这是一个内存堆栈(作为高速缓存),其包含的只是一个静态的ConcurrentHashMap(CHM).
所有传入的HTTP请求数据都存储在此ConcurrentHashMap中.而且还有一个非同步调度过程中,从相同的ConcurrentHashMap取得数据,并将它们存储到数据库中后删除key.value.
该系统运行良好和平稳,但在以下条件才发现,内存得到了充分利用(2.5GB)和所有的CPU时间被送往执行GC:
-concurrent http命中1000/s
- 在15分钟内保持相同的并发命中
每次写入数据库时,异步进程都会记录CHM的剩余大小.CHM.size()保持在Min:300到Max:3500左右
我认为此应用程序存在内存泄漏.所以我使用Eclipse MAT来查看堆转储.运行可疑报告后,我从MAT获得了这些评论:
"org.apache.catalina.session.StandardManager" 通过 "org.apache.catalina.loader.StandardClassLoader @ 0x853f0280" 加载的一个实例占据2135429456(94.76%)字节.该存储器中的"$ java.util.concurrent.ConcurrentHashMap中段[]"通过""加载一个实例积累.
3,646,166 instances of java.util.concurrent.ConcurrentHashMap$Segment retain >= 2,135,429,456 bytes.
Run Code Online (Sandbox Code Playgroud)
和
Length # Objects Shallow Heap Retained Heap
0 3,646,166 482,015,968 >= 2,135,429,456
Run Code Online (Sandbox Code Playgroud)
我将上面的长度0转换为CHM内的空长度记录(每次调用CHM.remove()方法).它与数据库内的记录数一致,创建此转储时,数据库中有3,646,166条记录
奇怪的情况是:如果我暂停压力测试,堆内存中的利用率将逐渐降至25MB.这需要大约30-45分钟.我重新模拟了这个应用程序,曲线看起来类似于下面的VisualVM图:
继承人的问题:
1)这看起来像是内存泄漏吗?
2)每次删除调用remove(Object key, Object value)
以<key:value>
从CHM中删除a ,删除的对象是否获得GC?
3)这与GC设置有关吗?我添加了以下GC参数但没有帮助:
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:GCTimeRatio=19
-XX:+PrintGCTimeStamps
-XX:ParallelGCThreads=6
-verbose:gc
Run Code Online (Sandbox Code Playgroud)
4)非常感谢任何解决这个问题的想法!:)
新 5)可能因为我的所有参考都是难以参考的吗?我的理解是,只要HTTP会话结束,所有那些非静态的变量现在都可用于GC.
新注意我尝试用ehcache 2.2.0替换CHM,但是我遇到了相同的OutOfMemoryException问题.我想ehcache也在使用ConcurrentHashMap.
服务器规格:
-Xeon Quad内核,8个线程.
-4GB内存
-Windows 2008 R2
-Tomcat 6.0.29
我们有一个新客户端,目前我们正在使用100个并发http线程(使用Jmeter)对服务器进行压力测试.问题是即使我们有2个Xeon处理器(每个CPU有4个内核,总共8个内核),我只能看到tomcat使用4个内核而不是8个内核.这4个核心我相信它只属于1个处理器.其他4个线程实际上正在睡觉.
我从Apache文档中得到的印象是,如果我们有多CPU机器,我们应该配置acceptorThreadCount ="2":http: //tomcat.apache.org/tomcat-6.0-doc/config/http.html
我们已将默认连接器更改为tomcatThreadPool,其中maxThreads ="150"minSpareThreads ="4",连接器执行器更改为acceptorThreadCount ="2".但它仍然只使用1个CPU.
知道如何配置利用所有核心(或所有CPU的处理器)?
谷歌待了几天,我相信我完全迷失了.我想实现一种有大约3个队列的优先级队列:
最初,我有以下流程,让消费者使用来自所有三个队列的消息,并检查队列#1,#2和#3中是否有任何项目.然后我意识到这是错误的,因为:
以下是我目前的配置,它显示了我是个白痴.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">
<rabbit:connection-factory id="connectionFactory" host="localhost" />
<rabbit:template id="amqpTemplatead_daily" connection-factory="connectionFactory"
exchange="" routing-key="daily_queue"/>
<rabbit:template id="amqpTemplatead_weekly" connection-factory="connectionFactory"
exchange="" routing-key="weekly_queue"/>
<rabbit:template id="amqpTemplatead_monthly" connection-factory="connectionFactory"
exchange="" routing-key="monthly_queue"/>
<rabbit:admin connection-factory="connectionFactory" />
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="Consumer" method="consume" queue-names="daily_queue" />
</rabbit:listener-container>
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="Consumer" method="consume" queue-names="weekly_queue" />
</rabbit:listener-container>
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="Consumer" method="consume" queue-names="monthly_queue" />
</rabbit:listener-container>
<bean id="Consumer" class="com.test.Consumer" />
</beans>
Run Code Online (Sandbox Code Playgroud)
知道如何用优先级队列解决这个问题?
ps:我也想知道,如果Apache Camel有我可以依赖的东西吗?
更新1:我刚从Apache Camel看到这个:" https://issues.apache.org/jira/browse/CAMEL-2537 "JMSPriority上的音序器似乎是我正在寻找的,任何人都曾尝试过这个吗?
更新2:假设我在@Gary Russell推荐下使用RabbitMQ的插件,我有以下spring-rabbitmq上下文XML配置,这似乎有意义(由guest ..): …
我正在阅读Facebook Insights并试图让Jackson将JSON映射到Object.如果所有数据都没有空,我就可以使用了.但我有一个问题,试图反序列化键值的空数组.即使在尝试这篇文章后:如何防止Map内的空值和bean内的空字段通过Jackson序列化 它没有解决问题:(
这是JSON:
{"data":[{"id":"492640667465465\/insights\/page_fans_country\/lifetime","name":"page_fans_country","period":"lifetime","values":[{"value":{"MY":26315,"ID":311,"SG":77,"NP":63,"MM":56,"PH":51,"GB":44,"US":44,"KR":36,"TH":36,"IN":34,"BD":24,"PK":22,"BN":22,"AU":15,"TW":14,"VN":12,"KH":11,"YE":11,"CA":10,"JP":10,"EG":8,"ZA":7,"SA":6,"ES":6,"HK":6,"FR":6,"IT":5,"IL":5,"IR":5,"NG":5,"LK":5,"BR":5,"IQ":4,"AF":4,"AE":4,"GT":4,"RO":4,"LR":4,"RU":4,"PS":4,"DE":4,"CN":4,"LY":3,"JO":3},"end_time":"2014-08-02T07:00:00+0000"},{"value":{"MY":26326,"ID":315,"SG":77,"NP":63,"MM":56,"PH":54,"GB":44,"US":43,"TH":38,"KR":36,"IN":33,"BD":23,"BN":22,"PK":21,"AU":16,"TW":14,"VN":12,"KH":11,"YE":11,"CA":10,"JP":10,"EG":8,"ZA":7,"SA":7,"ES":6,"HK":6,"FR":6,"IT":5,"IL":5,"IR":5,"NG":5,"LK":5,"BR":5,"IQ":4,"RU":4,"CN":4,"GT":4,"RO":4,"LR":4,"AF":4,"PS":4,"DE":4,"AE":4,"LY":3,"CH":3},"end_time":"2014-08-03T07:00:00+0000"},{"value":{"MY":26338,"ID":312,"SG":79,"NP":63,"MM":55,"PH":52,"US":45,"GB":44,"TH":39,"KR":34,"IN":32,"BD":24,"BN":22,"PK":21,"AU":16,"TW":14,"KH":12,"VN":12,"CA":11,"YE":11,"JP":10,"EG":8,"ZA":7,"SA":7,"ES":6,"HK":6,"FR":6,"IT":5,"CN":5,"IR":5,"NG":5,"LK":5,"BR":5,"IL":5,"IQ":4,"AF":4,"AE":4,"GT":4,"RO":4,"LR":4,"RU":4,"PS":4,"DE":4,"NZ":3,"TR":3},"end_time":"2014-08-04T07:00:00+0000"}],"title":"Lifetime Likes by Country","description":"Lifetime: Aggregated Facebook location data, sorted by country, about the people who like your Page. (Unique Users)"},{"id":"492640667465465\/insights\/page_storytellers_by_country\/day","name":"page_storytellers_by_country","period":"day","values":[{"value":[],"end_time":"2014-08-02T07:00:00+0000"},{"value":[],"end_time":"2014-08-03T07:00:00+0000"},{"value":[],"end_time":"2014-08-04T07:00:00+0000"}],"title":"Daily Country: People Talking About This","description":"Daily: The number of People Talking About the Page by user country (Unique Users)"},{"id":"492640667465465\/insights\/page_storytellers_by_country\/week","name":"page_storytellers_by_country","period":"week","values":[{"value":{"MY":136,"IN":3,"ID":2,"BD":1,"US":1,"TN":1,"AU":1},"end_time":"2014-08-02T07:00:00+0000"},{"value":{"MY":131,"IN":3,"US":1,"TN":1,"AU":1,"ID":1},"end_time":"2014-08-03T07:00:00+0000"},{"value":{"MY":118,"IN":2,"KH":1,"TR":1,"US":1,"TN":1,"AR":1,"AU":1},"end_time":"2014-08-04T07:00:00+0000"}],"title":"Weekly Country: People Talking About This","description":"Weekly: The number of People Talking About the Page by user country (Unique Users)"},{"id":"492640667465465\/insights\/page_storytellers_by_country\/days_28","name":"page_storytellers_by_country","period":"days_28","values":[{"value":{"MY":492,"IN":5,"ID":3,"AU":2,"SG":2,"ZA":2,"US":2,"GB":2,"RO":1,"PH":1,"NP":1,"BD":1,"JO":1,"PS":1,"TN":1,"IR":1,"CA":1,"CN":1,"KR":1},"end_time":"2014-08-02T07:00:00+0000"},{"value":{"MY":499,"IN":5,"ID":3,"GB":2,"SG":2,"ZA":2,"US":2,"RO":1,"PH":1,"NP":1,"BD":1,"AU":1,"CN":1,"KR":1,"TN":1,"IR":1,"CA":1,"JO":1},"end_time":"2014-08-03T07:00:00+0000"},{"value":{"MY":501,"IN":4,"ID":3,"SG":2,"ZA":2,"US":2,"GB":2,"AU":1,"RO":1,"PH":1,"NP":1,"JO":1,"AR":1,"KR":1,"BD":1,"TR":1,"IR":1,"CA":1,"CN":1,"KH":1,"TN":1},"end_time":"2014-08-04T07:00:00+0000"}],"title":"28 Days Country: People Talking About This","description":"28 Days: The number of People Talking About the Page by user country (Unique …
Run Code Online (Sandbox Code Playgroud) 我没有使用Java获得以下逻辑来使用AWS Lambda:
1)当在S3存储桶中创建新对象时,触发lambda函数(用java编写)
2)在此lambda函数中,列出所有DynamoDB表.
3)如果没有,则创建一个表.
4)将S3对象的详细信息作为项目写入DynamoDB.
我只得到第1项工作.当它到达第2项时,我在下面遇到与权限相关的错误.
任何帮助或建议?
我使用的权限是"Basic with DynamoDB",它具有以下权限:
START请求ID:e9ab5aba-307B-11e5-9663-3188c327cf5e作品尺寸:1024,日期时间:1970-01-01T00:00:00.000Zs3Key:HappyFace.jpgAWS凭据配置文件的文件没有指定路径中找到:/home/sbx_user1052/.aws/凭据:java.lang.IllegalArgumentException异常java.lang.IllegalArgumentException异常:AWS凭据配置文件的文件没有指定路径中找到:/home/sbx_user1052/.aws/credentials在com.amazonaws.auth.profile.internal.ProfilesConfigFileLoader.loadProfiles(ProfilesConfigFileLoader.的java:45)在com.amazonaws.auth.profile.ProfilesConfigFile.loadProfiles(ProfilesConfigFile.java:176)在com.amazonaws.auth.profile.ProfilesConfigFile(ProfilesConfigFile.java:112)在com.amazonaws.auth.profile. ProfilesConfigFile.(ProfilesConfigFile.java:92)位于com.amazonaws.auth.profile.ProfileCredentialsProvider.getCredentials(ProfileCredentialsProvider.java:123)位于com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1763)的com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.listTables(AmazonDynamoDBClient.java:1208)com.amazonaws .services.dynamodbv2.document.internal.ListTablesCollection.firstPage(ListTablesCollection.java:46)在com.amazonaws.services.dynamodbv2.document.internal.PageIterator.next(PageIterator.java:45)在com.amazonaws.services.dynamodbv2 .document.internal.IteratorSupport.nextResource(IteratorSupport.java:79)在com.amazonaws.services.dynamodbv2.document.internal.IteratorSupport.hasNext(IteratorSupport.java:47)在com.TriggerDynamoDB.handleRequest(TriggerDynamoDB.java:68 )at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.在java.lang.reflect.Method.invoke(Method.java:497)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中的reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
END RequestId:e9ab5aba-307b-11e5-9663-3188c327cf5e REPORT RequestId:e9ab5aba-307b-11e5-9663-3188c327cf5e持续时间:3294.97 ms结算时长:3300 ms内存大小:512 MB最大使用内存:51 MB
代码如下:
public class TriggerDynamoDB implements RequestHandler<S3Event, String> {
public String handleRequest(S3Event s3event, Context context) {
LambdaLogger logger = context.getLogger();
try {
S3EventNotificationRecord record = s3event.getRecords().get(0);
// Object key may have spaces or unicode non-ASCII characters.
String srcKey = record.getS3().getObject().getKey().replace('+', ' ');
srcKey = URLDecoder.decode(srcKey, "UTF-8");
long fileSize = record.getS3().getObject().getSizeAsLong();
DateTime datetime = record.getEventTime(); …
Run Code Online (Sandbox Code Playgroud) 在设置cassandra(0.8.4)并使用insert进行测试并通过CLI进行选择后,我继续使用CQL进行JDBC(1.0.3).
这就是我在下面的代码中遇到SQLException,有什么想法吗?
Connection conn = DriverManager.getConnection(url);
String sql = "INSERT INTO row (KEY, first, last, age) VALUES ( 'Jones', 'Jones', 'Lang', '32');"; // internal error
Statement stmt = conn.createStatement();
stmt.execute(sql);
Run Code Online (Sandbox Code Playgroud)
例外:
java.sql.SQLException: line 1:22 no viable alternative at input 'first'
at org.apache.cassandra.cql.jdbc.CassandraStatement.execute(CassandraStatement.java:160)
at Cassandra.Insert.main(Insert.java:22)
Run Code Online (Sandbox Code Playgroud) 我希望为我的公司创建一个文档存储库.原因是因为我的公司有很多文件,而且他们没有版本跟踪.这意味着每个人都在使用不同的版本.
Plone对我来说是新鲜事,我从我的一位好朋友那里得知.太糟糕了他不再回答我的问题了.我相信他,我希望实现他的想法,使用Plone作为我公司的文档存储库.
我已经安装了Plone并设法查看默认的Plone页面,添加所有公司的用户名并将徽标更改为我公司的徽标.现在最大的问题是,如何设置文档存储库?我的想法是为用户创建一个"页面"来添加文件,下载文件,搜索文件和阅读其描述.
有什么牵头让我去?
如果用户按下 JList 组件超过 3 秒,有什么方法可以捕获事件吗?
我发现困难的部分是即使在用户松开鼠标左键之前也需要触发事件。(这可以通过 mousePressed 和 mouseReleased 组合轻松完成)