How much you need completely depends on the architecture of your application(s) and what they are requiring. Adding memory is almost always a good idea. It's hard to say if you'll see improvement if you add 2 more apps to the server that are not there now as you'll not have comparable statistics. If you want to see an improvement add the memory prior to adding the additional applications. The parameters you use for JAVA_OPTS are, again, going to depend on the memory requirements of your applications.
There's no 100% accurate way really, but there's a way to give a good guess.
There is a python library chardet which is available here: https://pypi.python.org/pypi/chardet
e.g.
See what the current LANG variable is set to:
$ echo $LANG
en_IE.UTF-8
Create a filename that'll need to be encoded with UTF-8
$ touch mÉ.txt
Change our encoding and see what happens when we try and list it
$ ls m*
mÉ.txt
$ export LANG=C
$ ls m*
m??.txt
OK, so now we have a filename encoded in UTF-8 and our current locale is C (standard Unix codepage).
So start up python, import chardet and get it to read the filename. I'm use some shell globbing (i.e. expansion through the * wildcard character) to get my file. Change "ls m*" to whatever will match one of your example files.
>>> import chardet
>>> import os
>>> chardet.detect(os.popen("ls m*").read())
{'confidence': 0.505, 'encoding': 'utf-8'}
As you can see, it's only a guess. How good a guess is shown by the "confidence" variable.
Best Answer
Add this to your catalina.sh script:
Also in conf/server.xml you want to make this change so the URI encoding is set accordingly: