Điểm:0

Triển khai Tomcat chậm trên máy chủ Unix

lá cờ cn

Gần đây chúng tôi đã chuyển sang Tomcat từ WebSphere cho ứng dụng của mình.

Chúng tôi đang sử dụng: JDK 1.8 Bản dựng 191 và Tomcat 9.0.50. Hầu hết ứng dụng là sự kết hợp giữa Servlet/JSP và một vài ứng dụng web với Spring MVC, nó sử dụng một số đa luồng

Bây giờ các máy chủ thử nghiệm của chúng tôi triển khai hoàn toàn tốt. Nó khá zippy. Nhưng khi triển khai trên Tomcat trên Sản xuất, nó chỉ dừng lại ở tiếng rít.

Ví dụ: Đây là kết quả từ Máy chủ thử nghiệm:

26-Aug-2021 08:56:11.585 THÔNG TIN [chính] org.apache.catalina.startup.HostConfig.deployWAR Triển khai kho lưu trữ ứng dụng web [/opt/app/tomcat/webapps/cdsrs.war]
26-Aug-2021 08:56:13.750 THÔNG TIN [chính] org.apache.jasper.servlet.TldScanner.scanJars Ít nhất một tệp JAR đã được quét để tìm TLD nhưng không chứa TLD nào. Bật ghi nhật ký gỡ lỗi cho trình ghi nhật ký này để có danh sách đầy đủ các JAR đã được quét nhưng không tìm thấy TLD nào trong đó. Bỏ qua các JAR không cần thiết trong quá trình quét có thể cải thiện thời gian khởi động và thời gian biên dịch JSP.
26-Aug-2021 08:56:14.091 THÔNG TIN [chính] org.apache.catalina.startup.HostConfig.deployWAR Việc triển khai kho lưu trữ ứng dụng web [/opt/app/tomcat/webapps/cdsrs.war] đã hoàn tất sau [2.505] bệnh đa xơ cứng

Và đây là ứng dụng web tương tự trên Sản xuất:

26-Aug-2021 09:26:18.016 THÔNG TIN [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Thư mục triển khai ứng dụng web [/opt/app/tomcat/webapps/cdsrs]
26-Aug-2021 09:26:19.870 THÔNG TIN [Catalina-utility-1] org.apache.jasper.servlet.TldScanner.scanJars Ít nhất một tệp JAR đã được quét để tìm TLD nhưng không chứa TLD nào. Bật ghi nhật ký gỡ lỗi cho trình ghi nhật ký này để có danh sách đầy đủ các JAR đã được quét nhưng không tìm thấy TLD nào trong đó. Bỏ qua các JAR không cần thiết trong quá trình quét có thể cải thiện thời gian khởi động và thời gian biên dịch JSP.
26-Aug-2021 09:28:52.569 THÔNG TIN [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Triển khai thư mục ứng dụng web [/opt/app/tomcat/webapps/cdsrs] đã hoàn tất trong [ 154,553] mili giây

Tôi có bộ này trên tệp setenv.sh:

export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -Xloggc:gc/gc.log"
xuất CATALINA_OPTS="$CATALINA_OPTS -Xms3072M"
xuất CATALINA_OPTS="$CATALINA_OPTS -Xmx8192M"
xuất CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=3072M"

Và tôi đã định cấu hình server.xml của mình với:

<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" />

Động cơ đánh dấu như:

<Engine name="Catalina" defaultHost="localhost" startStopThreads="0">

Chưa kể, ứng dụng cũng chạy rất chậm trên đó! Thời gian tải trang hiện đã tăng khoảng 200-300% so với khi nó chạy trên WebSphere. Am i thiếu cái gì ở đây? Một số trợ giúp về điều này sẽ thực sự được đánh giá cao. Cảm ơn!

lá cờ cn
Ngoài ra, nếu ai đó có thể làm sáng tỏ NIO và NIO2. Nếu chuyển sang NIO2 sẽ cải thiện hiệu suất một chút.
Michael Hampton avatar
lá cờ cz
Trong một trường hợp, bạn đang triển khai tệp WAR và trong trường hợp khác (trường hợp dài dòng), bạn đang triển khai từ một thư mục. Tại sao sự khác biệt?
lá cờ cn
@MichaelHampton Cả hai trường hợp, tôi đang triển khai WAR. Các bản ghi là từ khởi động máy chủ. Các tệp WAR đã có trong thư mục ứng dụng web của Tomcat. Sự khác biệt, tôi ước tôi có thể cho bạn biết lý do là gì! Các máy Unix sản xuất mạnh hơn nhiều so với các máy thử nghiệm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.