Hello community, I have a situation that started to happen about a month ago and I'm not sure how to tackle it.
Long time ago I have created a ticketing system while working as technical support for a kitchen commercial equipment company.
It was my very first system. I had no idea about server configuration. I just installed CF9 on a Windows XP machine with a mySQL database.
The system was running with the built-in CF server. There were only 5 users.
Today, 12 years later, the system is being accessed by more than 25 users, running reports.
Hardware has changed. The system is running on a i7 machine with 8GB of ram and Windows 7 Pro.
However, it's still running (for the moment, soon to be changed to Apache server) on the built-in CF server.
I would assume that if the problem is that it runs in the built-in server, it wouldn't fail from one day to another, but maybe I'm wrong.
However, I will install Apache as a first step.
Besides this, is there any "tuning up CF9 for production" guide for developers, not server administrators out there you guys can suggest?
Any ideas or suggestions?
CF9 what update level is that? As I recall CF9 RTM could be updated to 9.0.1. There was a refresh installer 9.0.2 but that needed a new install.
Is CF9 32 or 64 bit?
What Java is CF9 using? If RTM installer that could be Java 6 if refreshed it still could be Java 6 but Java 7 was officially supported. Be mindful both 6 & 7 are Oracle EOL with Java 8 current.
Perhaps some tuning to CF9 Java memory values? As I recall CF9 installs with maximum memory 512m and MaxPermsize 192m. You could do well to set a value for minimum (initial) memory (zero by CF9 default) and increase maximum as well as set larger Permsize. How much maximum depends on CF9 32 or 64 bit.
Hello again Carl and thank you for your answer.
The update level is 9,0,2,282541.
It's Coldfusion 9 64 bit.
Java Version is 1.6.0_29.
I have changed these values to reflect the following:
Maximum JVM Heap Size (MB): 1024
I have also changed the Maximum number of simultaneous Template requests to 20 (10 by default).
I took this info from the settings page.
The Permsize is within the jvm.config file, correct?
It's indeed at -XX:MaxPermSize=192m.
What value would you recommend?
According to what I was reading, going too crazy with these values can decrease performance instead of improve it.
Thank you for the time you are taking for this.
It can be a good idea to set minimum and maximum the same as you have:
Maximum JVM Heap Size (MB): 1024
You have Windows with 8Gb and CF9 Java 6 is 64 bit so perhaps double those to 2048.
>Permsize is within the jvm.config file, correct? It's indeed at -XX:MaxPermSize=192m.
Yes. So if you make a copy of jmv.config by way of backup then edit that to say 512m .
CF requires a restart to apply Heap and Permsize changes.
That is a long way from tuning and one could do well to perform some Java logging to see how the Java heap and non heap is been consumed. There is also the age of Java 6 to consider. However I gather you just want to try something to stop the hangs.
What else might help? Perhaps there is useful information in CF logs. CF\runtime\logs server or Jrun\logs multiserver, read coldfusion-event.log & coldfusion-out.log for error.
HTH again, Carl
I'll do that.
I really appreciate your help Carl.
Hello Carl, after making the suggested changes, the server (just the CF server, not the machine where it's installed) had 2 minutes lags again.
A little context: the system I built accesses two different databases. One database (mySQL) is the one for the system itself. The second database is for the accounting system (MS SQL Server). When they realized I could access data and create web based reports, they asked me to interact with it (just reading, not updates nor inserts).
1. mySQL database running in the same PC (200 mb database).
2. MS SQL Server 2008 R2, running externally.
After a long call with one of the guys in this company, I found out the following: the MS SQL Server database is being accessed by 4 different systems:
The CF system
The accounting system
Excel, to create reports and update the tables.
Another system accessed remotely.
This leads me to think think of some long requests and table locks.
I have requested them to stop the other usages besides the CF system and the Accounting system for one day.
Anyway, I wanted to keep you up-to-date with the troubleshooting.
I feel like a detective trying to find a killer.
Hello Carl, here is my update:
Over the weekend I have installed a Mac with CF9 with Apache as web server, running with MAMP.
While working at the location, I was also able to test the network: the computer of one of the users having many issues was at 10 Mbs while other at 100 and 1000.
I am not a network specialist nor I understand how this would affect, but wondering if this computer, while doing a request at 10 Mbs could slow down the database (my understanding is that it doesn't work by thread but by queue).
Bottom line, changing and CF server + fixing the network differences among PCs made the system to work amazingly fast today, with no issues at all.
I don't want to say it's solved yet but I'm keeping my fingers crossed.
PS: The new CF server has the settings you have recommended. If tomorrow by the end of the day everything continues this way, I'll do two things:
1. Mark your recommendations as the answer.
2. Bill my client.
I'll be back tomorrow.
Thank you for your concern and big help Carl.
Dear Carl, thank you for your help, once again.
Second day in a row that things were smooth and fast.
I'll sleep again