Ich verwende Tomcat mit dem Tomcat6-Paket von Ubuntu 9.04, das Tomcat mit jsvc zu einem Daemon macht. Ich würde gerne wissen, wie man Java-Heap-Optionen wie -Xmx
für Tomcat richtig einstellt . Ich möchte die Konfiguration dort platzieren, wo es am stilistischsten ist und wo es am unwahrscheinlichsten ist, dass sie von Ubuntu-Paketaktualisierungen überschrieben wird.
Die Optionen, die ich gerade sehe:
- Codiere sie irgendwo in
/etc/init.d/tomcat6
. - Codiere sie irgendwo in
/usr/share/tomcat6/bin/catalina.sh
. - Erstellen Sie eine Zeile in
/usr/share/tomcat6/bin/startup.sh
, um CATALINA_OPTS mit den gewünschten Flags zu versehen, und exportieren Sie dann CATALINA_OPTS als Umgebungsvariable. (Es sieht so aus, als würde es von abgeholt werdencatalina.sh
.)
Die letzte Option klingt nach der besten und wird (ohne Begründung) bei der Erhöhung des Java-Heapspeichers im Tomcat-Startskript empfohlen . Aber ich wollte eine zweite Meinung einholen. Möchte jemand bestätigen, dass es keinen besseren Weg gibt?
/etc
./etc/tomcat6/tomcat6.conf
handelt es sich um eine große Datei, und ich wollte meine persönlichen Anpassungen nicht dort$CATALINA_HOME/bin/setenv.sh
einfügen , also habe ich sie erstellt und als Quelle verwendet/usr/sbin/tomcat6
. Hoffe, das hilft CentOS-Benutzern (ja, ich weiß, dass die ursprüngliche Frage für Ubuntu war).Wenn Sie in das bin-Verzeichnis Ihrer Installation schauen, sehen Sie catalina.sh- oder .bat-Skripte. Wenn Sie sich diese ansehen, werden Sie feststellen, dass sie ein Skript setenv.sh bzw. setenv.bat ausführen, um Umgebungsvariablen festzulegen, sofern es vorhanden ist. Die relevanten Umgebungsvariablen sind in den Kommentaren oben in catalina.sh/bat beschrieben. Erstellen Sie dazu beispielsweise eine Datei $ CATALINA_HOME / bin / setenv.sh mit Inhalten
Für Windows benötigen Sie in setenv.bat so etwas wie
Dies gilt von Tomcat 5.5 bis 7. Die ursprüngliche Antwort lautet https://stackoverflow.com/questions/286007/how-to-tune-tomcat-5-5-jvm-memory-settings-ohne-verwendung-der-Konfigurationsprogra
quelle
Suchen Sie nach /etc/tomcat6/tomcat6.conf , in der JAVA_OPTS zum Entkommentieren bereitsteht (aber nur, wenn Sie es überhaupt haben, verwende ich Centos und nicht Ubuntu).
quelle
Die eleganteste Möglichkeit, die ich bisher gefunden habe, besteht darin, /etc/init.d/tomcat6 zu bearbeiten und dies oben in die Datei einzufügen:
Die anderen Optionen, die ich in meiner Frage umrissen habe, scheinen nicht zu funktionieren. Nach dem Studium des Skripts und weiteren Experimenten bezweifle ich nun, dass /usr/share/tomcat6/bin/catalina.sh und /usr/share/tomcat6/bin/startup.sh beim Tomcat-Start mit dem Tomcat6-Ubuntu-Paket eine Rolle spielen. Stattdessen; Die Datei /etc/init.d/tomcat6 ersetzt vollständig alle Arbeiten, die normalerweise von catalina.sh/startup.sh ausgeführt werden.
Ich bin immer noch ein wenig besorgt, dass ich diese Konfigurationsoptionen in einem zukünftigen Paket-Update verlieren könnte, aber ich denke, wenn das passiert, wäre es ziemlich einfach, sie wiederherzustellen.
quelle