เราเพิ่งย้ายไปยัง Tomcat จาก WebSphere สำหรับแอปพลิเคชันของเรา
เรากำลังใช้:
JDK 1.8 สร้าง 191 และ
ทอมแคท 9.0.50.
แอปพลิเคชันส่วนใหญ่เป็นการผสมผสานระหว่าง Servlet / JSP และเว็บแอปบางส่วนที่มี Spring MVC ซึ่งใช้มัลติเธรด
ตอนนี้เซิร์ฟเวอร์ทดสอบของเราใช้งานได้ดีอย่างแน่นอน มันค่อนข้างมีกำลังใจ แต่เมื่อปรับใช้กับ Tomcat บน Production มันก็หยุดลงอย่างน่าใจหาย
ตัวอย่างเช่น นี่เป็นเอาต์พุตจากเซิร์ฟเวอร์ทดสอบ:
26 ส.ค. 2021 08:56:11.585 INFO [หลัก] org.apache.catalina.startup.HostConfig.deployWAR การปรับใช้ที่เก็บถาวรของเว็บแอปพลิเคชัน [/opt/app/tomcat/webapps/cdsrs.war]
26-ส.ค.-2021 08:56:13.750 INFO [หลัก] org.apache.jasper.servlet.TldScanner.scanJars มีการสแกน JAR อย่างน้อยหนึ่งรายการเพื่อหา TLD แต่ไม่มี TLD เปิดใช้งานการบันทึกดีบักสำหรับตัวบันทึกนี้สำหรับรายการทั้งหมดของ JAR ที่สแกนแต่ไม่พบ TLD การข้าม JAR ที่ไม่จำเป็นระหว่างการสแกนสามารถปรับปรุงเวลาเริ่มต้นและเวลาในการคอมไพล์ JSP
26 ส.ค. 2021 08:56:14.091 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR การปรับใช้ที่เก็บถาวรของเว็บแอปพลิเคชัน [/opt/app/tomcat/webapps/cdsrs.war] เสร็จสิ้นใน [2,505] นางสาว
และนี่คือเว็บแอปเดียวกันในการผลิต:
26-ส.ค.-2021 09:26:18.016 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory การปรับใช้ไดเรกทอรีเว็บแอปพลิเคชัน [/opt/app/tomcat/webapps/cdsrs]
26-ส.ค.-2021 09:26:19.870 INFO [Catalina-utility-1] org.apache.jasper.servlet.TldScanner.scanJars มีการสแกน JAR อย่างน้อยหนึ่งรายการเพื่อหา TLD แต่ไม่มี TLD เปิดใช้งานการบันทึกดีบักสำหรับตัวบันทึกนี้สำหรับรายการทั้งหมดของ JAR ที่สแกนแต่ไม่พบ TLD การข้าม JAR ที่ไม่จำเป็นระหว่างการสแกนสามารถปรับปรุงเวลาเริ่มต้นและเวลาในการคอมไพล์ JSP
26 ส.ค. 2021 09:28:52.569 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory การปรับใช้ไดเรกทอรีเว็บแอปพลิเคชัน [/opt/app/tomcat/webapps/cdsrs] เสร็จสิ้นใน [ 154,553] น
ฉันมีชุดนี้ในไฟล์ setenv.sh:
ส่งออก CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -Xloggc:gc/gc.log"
ส่งออก CATALINA_OPTS="$CATALINA_OPTS -Xms3072M"
ส่งออก CATALINA_OPTS="$CATALINA_OPTS -Xmx8192M"
ส่งออก CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=3072M"
และฉันได้กำหนดค่า server.xml ด้วย:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="65536" maxThreads="150" SSLEnabled="true" acceptorThreadCount="4" >
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/keystore.jks" certificateKeystorePassword="some_password" type="RSA" />
</SSLHostConfig>
</Connector>
<Connector address="SERVER_HOSTNAME" port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" acceptorThreadCount="4" />
และ เครื่องยนต์
แท็กที่ชอบ:
<Engine name="Catalina" defaultHost="localhost" startStopThreads="0">
ไม่ต้องพูดถึง แอปทำงานช้ามากเช่นกัน! เวลาในการโหลดเพจเพิ่มขึ้นประมาณ 200-300% ในขณะนี้ เมื่อเทียบกับเมื่อรันบน WebSphere ฉันพลาดอะไรไปหรือเปล่า ความช่วยเหลือในเรื่องนี้จะได้รับการชื่นชมจริงๆ ขอบคุณ!