i'm really sorry for my lt questions problem still but i noticed that when i changed size of worker to be -Xms4g it be read -Xmx768m
May be this is the cause of GC problem beacuse it still not read high number ? On Thu, Apr 14, 2016 at 10:50 PM, sam mohel <[email protected]> wrote: > Thanks for your help . another thing I want to mention it . the code used > spout.max.pending =50.000.000. And threshold for as 0.4 . code worked well > but after changed in calculations using hashmaps with same pending of spout > and same threshold . I got this error . the basic file which has tweets > containing 50.000 tweets . I tried to decreases pending for 10.000 but > didn't work . error still . > > How can I increase size of memory for worker ? I know it I'll from > storm.yaml but which number should I choose and structure of line that I > will write it ? > > On Thursday, April 14, 2016, Alexander T <[email protected]> wrote: > >> GC overhead limit errors are typical when you are slowly filling up RAM. >> When available memory is running low the JVM eventually spends almost all >> its time GC:ing and this error is raised. >> >> Most likely you are slowly filling up all available memory with your >> maps. This might be hard to spot in VisualVM given the short timeframe you >> sampled. Try to supervise it over time and see what happens. >> >> What you need to do is to make sure that you are not just growing your >> maps indefinately. How you do that is implementation dependent. If you have >> a large but fixed but number of items to put in the map you can increase >> memory so that you will never use it up. Otherwise you will have to set a >> max size of your map or otherwise prevent tracking all items forever. Maybe >> a cache instead of a simple hashmap? >> >> Cheers >> Alex >> On Apr 14, 2016 1:05 AM, "sam mohel" <[email protected]> wrote: >> >>> thanks i tried it but error still , i thinks you are right and Andey too >>> about hashmap >>> because the code i have i changed it by increasing another calculations >>> using hashmaps >>> >>> i ran the code without any update in my machine and workerd well without >>> any problem with GC >>> but after i changed it by adding another hashmaps this error appeared i >>> mean GC overhead >>> so the best solution that you told me before is to remove but i couldn't >>> find or know how can i remove it and where >>> do you mean by removing >>> >>> like >>> h.remove(); ? >>> >>> and where can i remove it ? the code using trident >>> >>> On Wed, Apr 13, 2016 at 4:22 PM, Spico Florin <[email protected]> >>> wrote: >>> >>>> Hi! >>>> For the issue you have to exclude the storm-core from your generated >>>> fat jar. You use maven as far I as understood, therefore you have to use >>>> something like this: >>>> set the scope for the storm-core dependency to compile. >>>> <dependency> >>>> <groupId>org.apache.storm</groupId> >>>> <artifactId>storm-core</artifactId> >>>> <version>0.10.0</version> >>>> <scope>compile</scope> >>>> </dependency> >>>> >>>> Please check. >>>> Regards, >>>> Florin >>>> >>>> On Wed, Apr 13, 2016 at 5:17 PM, sam mohel <[email protected]> wrote: >>>> >>>>> 1- i set debug for true in the code , i'm using trident and as i run >>>>> code in local mode using maven command i didn't get >>>>> for second point it didn't work >>>>> >>>>> Caused by: java.lang.RuntimeException: Found multiple defaults.yaml >>>>> resources. You're probably bundling the Storm jars with your topology jar. >>>>> [jar:file:/usr/local/storm/lib/storm-core-0.9.6.jar!/defaults.yaml, >>>>> jar:file:/home/user/.m2/repository/org/apache/storm/storm-core/0.9.6/storm-core-0.9.6.jar!/defaults.yaml] >>>>> >>>>> 2- i tried to run topology in production mode and got >>>>> Exception in thread "main" DRPCExecutionException(msg:Request timed >>>>> out) >>>>> >>>>> should i increase >>>>> drpc.request.timeout.secs: 600 >>>>> >>>>> as the file that code will use it to get results contains 50.000 >>>>> tweets , so should i increase time request for drpc ? >>>>> >>>>> >>>>> On Tue, Apr 12, 2016 at 2:22 PM, Spico Florin <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi! >>>>>> 0. I agree with Andrey that you put a large map (dictionary) on the >>>>>> heap that you are loading it without remove anything to it. >>>>>> 1. For running the topology in LocalCluster you can use a code like >>>>>> this inyour main class (that runs the topology and has the public static >>>>>> void main method): >>>>>> TopologyBuilder builder = ...//your topology >>>>>> Config conf = new Config(); >>>>>> >>>>>> conf.setDebug(true); >>>>>> >>>>>> if (args.length == 0) { >>>>>> LocalCluster cluster = new LocalCluster(); >>>>>> >>>>>> cluster.submitTopology("Hello-World", config, >>>>>> builder.createTopology()); >>>>>> >>>>>> >>>>>> } >>>>>> 2. If you have an environment like eclipse, you can run your code by >>>>>> setting the -Xmx2048m for your topology main class (has the public >>>>>> static >>>>>> void main method) like this: >>>>>> a)Run your Java main class as Java application (this will >>>>>> create a launch configuration with the name of your class) >>>>>> b) Go to Run Configurations -> Go to your launch configuration >>>>>> having the name of your class >>>>>> c) Go to the VM arguments tab -> add your -Xmx2048m flag >>>>>> >>>>>> 3. If you run your topology on the cluster in order to see how much >>>>>> memory you have allocated to your worker >>>>>> a) go to the storm ui ( http://<your_storm_UI_IP>:8080/) >>>>>> b) check the worker.childopts nimbus configuration >>>>>> >>>>>> I hope that these help. >>>>>> Regards, >>>>>> Florin >>>>>> >>>>>> On Mon, Apr 11, 2016 at 5:38 PM, Andrey Dudin <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> *sorry again how can i know XmX and XMs in my JVM? * >>>>>>> If you are using linux, you can use this command: ps -ef | grep java. >>>>>>> Then find your topology in process list. Or add >>>>>>> *-XX:+PrintCommandLineFlags* to worker childopts. >>>>>>> >>>>>>> Please add this params to worker.childopts: -XX:+PrintGCTimeStamps >>>>>>> -XX:+PrintGCDetails -Xloggc:gc%ID%.log >>>>>>> for dump GC activity to logfile. >>>>>>> >>>>>>> >>>>>>> *how can memory not active and it is not leak and i need to extra >>>>>>> it * >>>>>>> Objects can use heap for it live. Without source code complicated >>>>>>> say whats wrong. Just try to add memory and look at GC monitor. >>>>>>> >>>>>>> >>>>>>> May be useful: >>>>>>> "To begin, we need to run the application with the largest possible >>>>>>> amount of memory than is actually needed application. If we did not know >>>>>>> initially how many will take our application in mind - you can run the >>>>>>> application without specifying the -Xmx and -Xms and HotSpot VM will >>>>>>> select >>>>>>> the size of memory. If at the start of the application we will get >>>>>>> OutOfMemory (Java heap space or PermGen space), then we can iteratively >>>>>>> increase the available memory size (-Xmx or -XX: PermSize) until the >>>>>>> error >>>>>>> does not go away. >>>>>>> The next step is to calculate the size of long-lived live data - is >>>>>>> the size of old and permanent areas of the heap after a phase of full >>>>>>> garbage collection. This size - the approximate amount of memory >>>>>>> required >>>>>>> for the functioning of the application, to obtain it, you can see the >>>>>>> size >>>>>>> of the area after a series of the complete assembly. Usually the size of >>>>>>> the memory required for the application -Xms and -Xmx 3-4 times more >>>>>>> than >>>>>>> the amount of live data." >>>>>>> >>>>>>> >>>>>>> 2016-04-11 16:53 GMT+03:00 sam mohel <[email protected]>: >>>>>>> >>>>>>>> @Florin >>>>>>>> thanks for replying , really iam using 3 hashmap in my code >>>>>>>> please how can i debug the code in local mode ? >>>>>>>> after error appeared visualVM closed my application , should i run >>>>>>>> it again to see what i got in the profiler tab ? i saved what i got in >>>>>>>> heapdump , should i use it or get something from it ? >>>>>>>> >>>>>>>> sorry again how can i know XmX and XMs in my JVM? >>>>>>>> >>>>>>>> Thanks a lot >>>>>>>> >>>>>>>> @Andrey >>>>>>>> Thanks for replying i've question about memory it's first time deal >>>>>>>> with that problem >>>>>>>> how can memory not active and it is not leak and i need to extra it >>>>>>>> how can i change GC trigger ? >>>>>>>> >>>>>>>> Thanks a lot , Really thanks for helping >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Apr 11, 2016 at 2:18 PM, Andrey Dudin <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> There is not memory leak. Your memory graph show that memory not >>>>>>>>> active using. Likely you use a big object\map\etc in memory. GC don't >>>>>>>>> stop >>>>>>>>> working because level of free memory is low. You need to extra memory >>>>>>>>> or >>>>>>>>> change GC trigger. >>>>>>>>> >>>>>>>>> 2016-04-11 7:31 GMT+03:00 sam mohel <[email protected]>: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> @spico there is what i got after ruuning code again in local >>>>>>>>>> mode , how can i know if there is memory leak or not ? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, Apr 8, 2016 at 1:45 AM, sam mohel <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> sorry it's supposed to use hashmap.remove() to not to make it >>>>>>>>>>> reach to heapsize right ! >>>>>>>>>>> >>>>>>>>>>> On Fri, Apr 8, 2016 at 1:43 AM, sam mohel <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Really thanks for your patience , what i got about hashmap you >>>>>>>>>>>> mentioned that it's supposed not to use hashmap.remove(); >>>>>>>>>>>> Right ? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Apr 7, 2016 at 10:45 AM, Spico Florin < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi! >>>>>>>>>>>>> By release the hashmap, I mean that you need to remove the >>>>>>>>>>>>> keys at some points. Meaning hashMap.remove(key). If you just use >>>>>>>>>>>>> hashMap.put() in the nextTuple method of the spout or in the >>>>>>>>>>>>> execute method >>>>>>>>>>>>> of the bolt, and never use the hashMap.remove() and your hashMap >>>>>>>>>>>>> is a field >>>>>>>>>>>>> in the Bolt or Spout class, then your map will grow and you'll >>>>>>>>>>>>> reach your >>>>>>>>>>>>> heap Size. >>>>>>>>>>>>> The issue that yo have with the jvisualvm is that you have >>>>>>>>>>>>> installed only the Java Runtime Evironment (only the java vm) but >>>>>>>>>>>>> not the >>>>>>>>>>>>> the JDK (Java Development Kit) . Please install the JDK. >>>>>>>>>>>>> After installing look at hashmap classes. Check the memory >>>>>>>>>>>>> size for them. Run GC and check if the memort size for them >>>>>>>>>>>>> grows. If they >>>>>>>>>>>>> grow even after GC then you could have a memory leak. >>>>>>>>>>>>> >>>>>>>>>>>>> I hope that it helps. >>>>>>>>>>>>> Florin >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Apr 6, 2016 at 8:49 AM, sam mohel <[email protected] >>>>>>>>>>>>> > wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> @florin >>>>>>>>>>>>>> i used this command java -XX:+PrintFlagsFinal -version | >>>>>>>>>>>>>> grep HeapSize >>>>>>>>>>>>>> >>>>>>>>>>>>>> and got >>>>>>>>>>>>>> >>>>>>>>>>>>>> uintx ErgoHeapSizeLimit = >>>>>>>>>>>>>> 0 {product} >>>>>>>>>>>>>> uintx HeapSizePerGCThread = >>>>>>>>>>>>>> 87241520 {product} >>>>>>>>>>>>>> uintx InitialHeapSize := >>>>>>>>>>>>>> 63056640 {product} >>>>>>>>>>>>>> uintx LargePageHeapSizeThreshold = >>>>>>>>>>>>>> 134217728 {product} >>>>>>>>>>>>>> uintx MaxHeapSize := >>>>>>>>>>>>>> 1010827264 {product} >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Apr 6, 2016 at 12:44 AM, sam mohel < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> sorry i forgot to mention that my ram is 3.8 GB and i used >>>>>>>>>>>>>>> hahsmap in the code but i don't know what do you mean by >>>>>>>>>>>>>>> release it ? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed, Apr 6, 2016 at 12:20 AM, sam mohel < >>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> @ florin thanks for replying , i installed tool but got >>>>>>>>>>>>>>>> when i ran it >>>>>>>>>>>>>>>> i checked update-alternatives --config java >>>>>>>>>>>>>>>> There are 3 choices for the alternative java (providing >>>>>>>>>>>>>>>> /usr/bin/java). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Selection >>>>>>>>>>>>>>>> Path Priority >>>>>>>>>>>>>>>> Status >>>>>>>>>>>>>>>> ------------------------------------------------------------ >>>>>>>>>>>>>>>> 0 >>>>>>>>>>>>>>>> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 >>>>>>>>>>>>>>>> auto mode >>>>>>>>>>>>>>>> * 1 >>>>>>>>>>>>>>>> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 >>>>>>>>>>>>>>>> manual mode >>>>>>>>>>>>>>>> 2 >>>>>>>>>>>>>>>> /usr/lib/jvm/java-6-oracle/jre/bin/java 1062 >>>>>>>>>>>>>>>> manual mode >>>>>>>>>>>>>>>> 3 >>>>>>>>>>>>>>>> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 >>>>>>>>>>>>>>>> manual mode >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Sun, Apr 3, 2016 at 9:19 PM, Spico Florin < >>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> hi! >>>>>>>>>>>>>>>>> before increasing the ram (by rpoviding in command line >>>>>>>>>>>>>>>>> arguments the jvm options java -Xmx) try to use a profile >>>>>>>>>>>>>>>>> tool such as >>>>>>>>>>>>>>>>> jvisualvm jprobe to see if you have amemory leak. do you use >>>>>>>>>>>>>>>>> a cache (for >>>>>>>>>>>>>>>>> example hashmap where you store some data but never relese >>>>>>>>>>>>>>>>> it). how much >>>>>>>>>>>>>>>>> ram do you have on your machine? check your default heap size >>>>>>>>>>>>>>>>> with the help >>>>>>>>>>>>>>>>> of this link >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> http://stackoverflow.com/questions/4667483/how-is-the-default-java-heap-size-determined >>>>>>>>>>>>>>>>> regards florin >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Sunday, April 3, 2016, sam mohel <[email protected]> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> > do you mean in storm.yaml ? or where ? >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > On Sun, Apr 3, 2016 at 11:56 AM, Andrey Dudin < >>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> >> Try to extra more RAM for this topology. >>>>>>>>>>>>>>>>> >> -Xms and -Xmx options >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> >> 2016-04-03 1:32 GMT+03:00 sam mohel < >>>>>>>>>>>>>>>>> [email protected]>: >>>>>>>>>>>>>>>>> >>> >>>>>>>>>>>>>>>>> >>> i'm facing problem with topology i ran it in local >>>>>>>>>>>>>>>>> mode and got >>>>>>>>>>>>>>>>> >>> Async loop died!java.lang.OutOfMemoryError: GC >>>>>>>>>>>>>>>>> overhead limit exceeded >>>>>>>>>>>>>>>>> >>> >>>>>>>>>>>>>>>>> >>> Can you help on this ? if there is any data you need >>>>>>>>>>>>>>>>> for helping just tell me >>>>>>>>>>>>>>>>> >>> >>>>>>>>>>>>>>>>> >>> Thanks in advance >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> >> -- >>>>>>>>>>>>>>>>> >> С уважением Дудин Андрей >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> С уважением Дудин Андрей >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> С уважением Дудин Андрей >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>
