Issue with slow Exo platform installation

Hi Folks,

Posting this to general as it doesn’t look like there is an Exo category.

I wasn’t sure how to file but but I wanted to share an issue with the Expo installer.

Essentially, I downloaded the Mac OS X .dmg and went through the installation. I was asked to select some different port numbers, presumably as I am already running the Discourse Bitnami stack. :smile:

While installing the install got stuck starting to the eXo platform for a long, long, long time and the window was empty. At this point I presumed the installer had failed, so started writing this post.

Then it completed. :slight_smile:

I suspect this slowness is because of eXo and not the Bitnami installer, but it might be handy to provide some kind of visual cue to show that things are still running. top didn’t give me enough information to determine things were running.

Thanks!

Hi @jonobacon,

Sorry for the inconvenience.

eXo Platform includes many sub-applications so it takes some time to start (normally it can take around 2-3 minutes in the first launch in a good machine). Also, did eXo finish successfully? I mean, did it work after the installation was done?

As a quick note, we are currently working on improving eXo Platform and we will release a new update soon.

Thanks!

Yep, it did finish. :smile:

It just took aaaaages.

Nice! I look forward to trying it! :slight_smile:

Thanks for letting us know!

We will create a blog post when it gets released, since it includes major changes, so keep tuned!

Hi

I have just installed the latest version of the exo platform, version 4.3.0-9 for Linux 64 bit (the ‘.run’ package), and it is very very slow.
It starts fine, the application is up and running within 1~2 minutes. But once logged in, using the app is going badly slow. Is there something to fine tune?

My .../exoplatform-4.3.0-9/apache-tomcat/bin/setenv.sh script has the following content:

JAVA_OPTS=""
. /opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/scripts/setenv.sh
# Load Tomcat Native Library
LD_LIBRARY_PATH=/opt/bitnami/exoplatform-4.3.0-9/common/lib:$LD_LIBRARY_PATH

JAVA_HOME=/opt/bitnami/exoplatform-4.3.0-9/java
JRE_HOME=$JAVA_HOME
JAVA_OPTS="-XX:+UseG1GC -Dfile.encoding=UTF8 -Duser.timezone=GMT $JAVA_OPTS "
JAVA_OPTS="-XX:MaxMetaspaceSize=512M -XX:MaxPermSize=512M -Xms512M -Xmx2816M $JAVA_OPTS " # java-memory-settings
export JAVA_HOME
export JRE_HOME
export JAVA_OPTS
export LD_LIBRARY_PATH

Hi @chbrandt

Have you checked the requirements of Exo? Maybe your specs are not the best for running Exo.

Regards,
David Barranco

Hi @dbarranco

Yes, the required hardware is there. Is there someway I could debug/inspect where the (extra) time is being consumed?

Thanks.
Regards,
Carlos

Hi chbrandt,

Could you paste the output of the command

free -h

and a screenshot of the output of top?

Best regards,
Silvio Fernández

Hi @silvio

Thank you in advance.
I think it is worth to say that this machine is hosting only the exoplatform right now.

Here goes the free -h:

root@www:~# free -h
             total       used       free     shared    buffers     cached
Mem:          5.8G       2.3G       3.5G        76M        29M       428M
-/+ buffers/cache:       1.9G       3.9G
Swap:         2.1G         0B       2.1G

, and top:

In the meantime I added more memory to the server and increased the JVM maximum memory (4GB) in the hope that this would help the performance, but little to nothing has being seen:

root@www:~# cat /opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/bin/setenv.sh 
JAVA_OPTS=""
. /opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/scripts/setenv.sh
# Load Tomcat Native Library
LD_LIBRARY_PATH=/opt/bitnami/exoplatform-4.3.0-9/common/lib:$LD_LIBRARY_PATH
JAVA_HOME=/opt/bitnami/exoplatform-4.3.0-9/java
JRE_HOME=$JAVA_HOME
JAVA_OPTS="-XX:+UseG1GC -Dfile.encoding=UTF8 -Duser.timezone=GMT $JAVA_OPTS "
JAVA_OPTS="-XX:MaxMetaspaceSize=512M -XX:MaxPermSize=512M -Xms512M -Xmx4096M $JAVA_OPTS " # java-memory-settings
export JAVA_HOME
export JRE_HOME
export JAVA_OPTS
export LD_LIBRARY_PATH

Also, here is the printed messages when exoplatform is started (if that matters somehow):

root@www:~# /opt/bitnami/exoplatform-4.3.0-9/ctlscript.sh start
waiting for server to start.... done
server started
/opt/bitnami/exoplatform-4.3.0-9/postgresql/scripts/ctl.sh : postgresql  started at port 5432
/opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/bin/catalina.sh: 136: /opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/scripts/setenv.sh: java: not found
Using CATALINA_BASE:   /opt/bitnami/exoplatform-4.3.0-9/apache-tomcat
Using CATALINA_HOME:   /opt/bitnami/exoplatform-4.3.0-9/apache-tomcat
Using CATALINA_TMPDIR: /opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/temp
Using JRE_HOME:        /opt/bitnami/exoplatform-4.3.0-9/java
Using CLASSPATH:       :/opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/lib/slf4j-api-1.7.7.jar:/opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/lib/jul-to-slf4j-1.7.7.jar:/opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/lib/logback-core-1.1.2.jar:/opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/lib/logback-classic-1.1.2.jar:/opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/lib/janino-2.6.1.jar:/opt/bitnami/exoplatform-4.3.0-9/apps/exoplatform/lib/commons-compiler-2.6.1.jar:/opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/bin/bootstrap.jar:/opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/temp/catalina.pid
Tomcat started.
/opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/scripts/ctl.sh : tomcat started
Syntax OK
/opt/bitnami/exoplatform-4.3.0-9/apache2/scripts/ctl.sh : httpd started at port 8080

Regards,
Carlos

Hi chbrandt,

Could you provide us the following log files?

/opt/bitnami/apache2/logs/error_log
/opt/bitnami/apache2/logs/access_log

And also Tomcat logs.

There are too many apache process running and tomcat process is also consuming a lot of cpu and memory. Are the server under heavy or medium load?

Best regards,
Silvio Fernández

Hi @silvio,

The server is under no (heavy or medium) load at all. It is a dedicated (virtual, xen) machine running solely eXo; the machine runs a Debian, 3.16.0-4 kernel.

I don’t actually know how to attach files here, so I’m giving you a link to a google-drive folder. Sorry. Let me know if there is a better way of doing this. https://drive.google.com/drive/folders/0B8wzI2XDY_DGZ0REN1lET0VVOE0?usp=sharing

The files came from /opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/logs (Tomcat) and /opt/bitnami/exoplatform-4.3.0-9/apache2/logs (Apache).

ps: please, let me know if/when I can delete these files from the web.

Best,
Carlos

Hi chbrandt,

Thanks for the information provided. Checking you logs we have detected the following:

  • Tomcat is trying to up cometD (messaging system) in port 8080, system throws an error because that port appears to be in use.
  • Due to the impossibility of up cometd, apache is returning a huge quantity of 502 errors when exo is trying to use cometD.

In order to solve this, could you check if there are any other applicaction running on port 8080? Could you check your tomcat server.xml configuration file and see if is there any missconfiguration?

It could be also interesting if you raise your -XX:MaxMetaspaceSize=512M to a higher value.

Best regards,
Silvio Fernández

Hi @silvio

Thanks for the effort.

Unfortunately there is no other application using port 8080. To be double-sure about that I just rebooted my machine and asked lsof for LISTENing ports:

sudo lsof -i -P -n | grep LISTEN
sshd      537     root    3u  IPv4  12305      0t0  TCP *:22 (LISTEN)
sshd      537     root    4u  IPv6  12307      0t0  TCP *:22 (LISTEN)

And then I ran exo. It started just fine. Performance is still an issue, but running.
By the way, netstat gives me:

sudo netstat -tulpn | grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      534/sshd        
tcp        0      0 127.0.0.1:40600         0.0.0.0:*               LISTEN      1081/java       
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1050/postgres.bin
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      936/exim4       
tcp        0      0 0.0.0.0:8443            0.0.0.0:*               LISTEN      1105/httpd.bin  
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      1081/java       
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1105/httpd.bin  
tcp        0      0 127.0.0.1:59955         0.0.0.0:*               LISTEN      1081/java       
tcp6       0      0 :::22                   :::*                    LISTEN      534/sshd

But then, If I (try to) restart exo (./ctlscript.sh stop and start) it complains about port 8080 being in use and no further goes in starting the appplication:

sudo ./ctlscript.sh start
waiting for server to start.... done
server started
/opt/bitnami/exoplatform-4.3.0-9/postgresql/scripts/ctl.sh : postgresql  started at port 5432
(...)
Tomcat started.
/opt/bitnami/exoplatform-4.3.0-9/apache-tomcat/scripts/ctl.sh : tomcat started
Syntax OK
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:8080
no listening sockets available, shutting down
AH00015: Unable to open logs
/opt/bitnami/exoplatform-4.3.0-9/apache2/scripts/ctl.sh : httpd could not be started

Quite strange isn’t it? Looks like something on the stack itself is holding the port.

After I installed exo no (config) files have being modified.

Best regards,
Carlos

Hi chbrandt,

Could you try to find wich process is keeping port 8080 in use after you execute ctlscript stop

Best regards,
Silvio Fernández

Hi @silvio

I couldn’t. I had install on that machine, earlier, a software that would use 8080. Probably some trash remained after I removed it.
By all means, now I have a brand new machine and exo is running just fine after a fresh install and a machine only for it.

Thank you for your help.
Carlos

1 Like

Hi,

We are glad that you were able to fix the issue.

Best regards,
Silvio Fernández