Thứ Năm, 21 tháng 10, 2021

Tối ưu Oracle WebLogic A-Z

Mục đích: Hướng dẫn tối ưu Oracle WebLogic A-Z

Mục đích: Tối ưu WebLogic

Nội dung tối ưu:

  1. Khảo sát, Tối ưu cho các server logic

  2. Tối ưu cho các manage server

  3. Tối ưu cho Apache Http WebServer

  4. Tối ưu Datasource

  5. Tối ưu Deployment

  6. Tối ưu cho công cụ quản trị Admin Console

  7. Tối ưu thời gian timout ứng dụng

  8. Các khuyến cáo khác


Khảo sát, Tối ưu cho các server logic

Khảo sát các doamain và phát hiện 1 số vấn đề:

Đánh giá: 3 server logic đầu tiên có tỷ lệ sử dụng bộ nhớ cao, cần được cấp phát thêm (lấy thông tin này ở mục Performance của server logic). Các server khác sử dụng < 50% RAM thu hồi lại tài nguyên cấp phát.


Đánh giá: 5 server logic đầu tiên có tỷ lệ sử dụng bộ nhớ khá cao (lên đến > 90%), cần phải tạo thêm server logic cho Cluster và tối ưu ứng dụng. Các Server khác > 50% và <90% thì giữ nguyên


Nghiên cứu tiếp các domain khác để xem tham số memory cất phát đã tối ưu chưa, nếu chưa điều chỉnh lại (thu hồi, cấp thêm hoặc giữ nguyên).


Các bước tối ưu chi tiết như bên dưới:


STT

Các bước thực hiện

Thời gian

I

Chuyển một số server logic từ máy chủ wls1 (107) sang các máy chủ wls2 (105), đảm bảo tài nguyên sử dụng ở mức an toàn. Danh sách các server logic cần chuyển:

Quy trình thực hiện dưới đây áp dụng với một server logic, các server logic khác thực hiện tương tự

40’

1.1

Click vào nút “Take Lock & Edit” trên trang Admin Console để bật chế độ cho phép thay đổi cấu hình .

 

1.2

Click vào link “Servers” ở bên trái màn hình

 

1.3

Dừng Server cần thay đổi (ví dụ APP1_HN2) (Chọn server sau đó nhấn nút Stop)

 

1.4

Trong trang hiển thị danh sách các server logic, click vào server APP1_HN2, rồi chọn tab Configuration > General

 

1.5

Thay đổi địa chỉ IP

192.168.8.107[B1]       Thành      192.168.8.105

 

1.6

Click vào link Machines ở menu bên trái, chọn máy chủ 107 sau đó bỏ server APP1_HN2 ra khỏi máy chủ 107

 

1.7

Tiếp tục chọn máy chủ 105 và thêm server APP1_HN2 vào máy chủ 105

 

1.8

Sau khi hoàn thành, nhấn nút Save và “Release Configuration” để lưu lại thay đổi

 

1.9

Restart lại server logic này để kích hoạt các tham số mới.

 

II

Điều chỉnh kích thước heap size cho các server để phù hợp với nhu cầu sử dụng thực tế:

Admin console

App_Server1_HN1 : 4GB

App_Server2_HN2: 4GB

App_Server2_HN4: 4GB

App2_1_srv1: 2GB

App2_2_srv1: 2GB

App2_2_srv2: 2GB

Thực hiện lần lượt các bước sau đối với từng server trên:

30’

2.1

Click vào nút “Take Lock & Edit” trên trang Admin Console để bật chế độ cho phép thay đổi cấu hình .

 

2.2

Click vào link “Servers” ở bên trái màn hình

 

2.3

Trong trang hiển thị danh sách các server logic, click vào server cần thay đổi, rồi chọn tab Configuration > Server Start

 

2.4

Sửa lại tham số Memory, ví dụ

-d64 -Xmx4096m -Xms4096m -XX:MaxPermSize=512m

Thành

-d64 –Xmx2048m –Xms2048m -XX:MaxPermSize=512m

Sau khi sửa xong, nhấn nút Save và “Release Configuration” để lưu lại thay đổi

 

2.5

Restart lại server logic này để kích hoạt các tham số mới.

 

2.6

Thay đổi cấu hình Apache trên cả 2 node 192.168.8.105, 192.168.8.107:[B2] 

a. Backup lại file cấu hình

b. Thay đổi lại tham số:

- Cấu hình cũ:

/app3 WebLogicCluster=192.168.8.107:7037,192.168.8.107:7039

/app1 WebLogicCluster=192.168.8.107:7135,192.168.8.107:7137,192.168.8.107:7139

/App2 WebLogicCluster=192.168.8.107:7119,192.168.8.107:7113,192.168.8.107:7115,192.168.8.107:7117,192.168.8.105:7113,192.168.8.105:7115

- Cấu hình mới:

 

III

Cập nhật bản vá 9089055 cho Weblogic Server 10.3.2 để khắc phục lỗi truy cập chậm vào các trang quản lý, giám sát máy chủ, ứng dụng

Quy trình này được thực hiện trên từng máy chủ server vật lý: 192.168.8.105 và 192.168.8.107. Với máy chủ còn lại, thực hiện tương tự

60’

3.1

Backup toàn bộ thư mục domain: App2_Domain và App1_DOMAIN

 

3.2

Dừng toàn bộ các server logic đang hoạt động

 

3.3

Dừng Node Manager

 

3.4

Copy bản vá 9089055 vào đường dẫn /u01/oracle/app/fmw/10.3.2/utils/bsu

 

3.5

Giải nén file .zip thành .jar

 

3.6

Đổi tên file patch-catalog_15563.xml thành patch-catalog.xml

 

3.7

Quay lại thư mục /u01/oracle/app/fmw/10.3.2/utils/bsu và chạy lệnh sau:

./bsu.sh -install -prod_dir=/u01/oracle/app/fmw/10.3.2/wlserver_10.3  -patch_download_dir=/u01/oracle/app/fmw/10.3.2/utils/bsu/cache_dir -patchlist=UGZJ -verbose -log=UGZJ.txt

 

3.8

Kiểm tra xem patch đã được cập nhật thành công hay chưa:

./bsu.sh -view -status=downloaded -prod_dir=/u01/oracle/app/fmw/10.3.2/wlserver_10.3 -patch_download_dir=/u01/oracle/app/fmw/10.3.2/utils/bsu/cache_dir

 

3.9

Bật lại Node Manager và các Server logic, Server Admin

 

3.10

Trong trường hợp có lỗi, copy lại thư mục đã backup đè lên các thư mục cũ và bật lại hệ thống

 

IV

Xóa hoặc chuyển các ứng dụng tạm hiện không còn sử dụng sang trạng thái Inactive để tránh các truy cập không hợp lệ và giải phóng dung lượng cho hệ thống: App1_bc, App1,App2,App3, App4,...

10’

4.1

Click vào link “Deployments” ở menu bên trái để vào màn hình hiển thị các ứng dụng

 

4.2

Chọn ứng dụng và nhấn nút Stop để chuyển  từ chế độ Active sang chế độ Inactive

 

V

Chuyển tham số cấu hình Apache cơ chế MPM từ prefork sang worker để tăng khả năng mở rộng và tối ưu bộ nhớ.

Quy trình này thực hiện cho từng phần mềm Apache Tomcat trên mỗi máy chủ 192.168.8.105 và 192.168.8.107. Cần thực hiện lần lượt trên từng máy chủ.

30’

5.1

Dừng Apache Tomcat

./apachectl –k stop

 

5.2


  • Vào thư mục conf

    • Backup file httpd.conf:

  • Cp httpd.conf httpd.conf_bk

    • Mở file httd.conf

 

5.3

Thay đoạn mã

<IfModule mpm_prefork_module>

ServerLimit 1024

StartServers 10

MinSpareServers 10

MaxSpareServers 20

MaxClients 1024

MaxRequestsPerChild 0

</IfModule>

Bằng đoạn mã

<IfModule mpm_worker_module>

StartServers     20

MaxClients      1024

MinSpareThreads  20

MaxSpareThreads  70

ThreadLimit      64

ThreadsPerChild  25

MaxRequestsPerChild  0

</IfModule>

 

5.4

Bật lại Apache

./Apachectl –k start

 

5.5

Trong trường hợp có lỗi, khôi phục lại file httpd.conf và bật lại Apache

 

Tổng cộng

 

150


Tối ưu DataSource
Services --> JDBC --> Data Sources --> fb_baocao2 --> Configuration --> Connection Pool
Các tham số thường đặt:

Tham số

Giá trị default

Giá trị khuyến cáo

 

 

 

 

 

 

URL:

jdbc:oracle:thin:@192.168.56.101:1521:dbaviet1

Ko thay đổi

Driver Class Name:

oracle.jdbc.OracleDriver

Ko thay đổi

Properties:

user=app_owner

 

Ko thay đổi

System Properties:

Trắng

 

Password:

 

Ko thay đổi

Confirm Password:

 

Ko thay đổi

Initial Capacity:

 

3

Maximum Capacity:

 

200

Minumum Capacity

 

3

Capacity Increment

 

 

Statement Cache Type

LRU

Ko thay đổi

Statement Cache Size:

10

> 10

Test Connections On Reserve

Disable

Enable

Test Frequency:

120

Ko thay đổi

Test Table Name:

SQL SELECT 1 FROM DUAL

Không thay đổi

Seconds to Trust an Idle Pool Connection:

10

Ko thay đổi

Shrink Frequency

900

Ko thay đổi

Init SQL:

Trống

 

Connection Creation Retry Frequency:

60

Ko thay đổi

Login Delay:

0

Ko thay đổi

Inactive Connection Timeout:

0

Khi đổi thành 300: Dùng OK (session 700)

Đổi lại 0 --> session lại tăng

 

Maximum Waiting for Connection:

2147483647

Ko thay đổi

Connection Reserve Timeout:

10

Ko thay đổi

Statement Timeout

-1

HT ít kết nối: Ko thay đổi

HT gây tải cho DB: 900 (s)

Ignore In-Use Connections

Enable (v)

Ko thay doi

Pinned-To-Thread

Disable

Ko thay doi

Remove Infected Connections Enabled

Enable (v)

Ko thay doi

Wrap Data Types

Enable (v)

Ko thay doi

Connection Harvest Max Count:

1

Ko thay doi

Connection Harvest Trigger Count:

-1

Ko thay doi


Tối ưu Deployment

Parameters

Tham số ban đầu

Tham số tối ưu

Session Timeout (in seconds)

3600

3600

Session Invalidation Interval (in seconds)

3600

60


Tối ưu timeout của ứng dụng
Giảm số lượng current session xuống để tránh quá tải connection trên OS làm treo Apache

Nội dung cũ

Nội dung mới

Plan: /u01/weblogic/app1/web.xml

<variable-definition>

<variable>

      <name>SessionDescriptor_timeoutSecs_14044113100840</name>

   <value>1800</value>

</variable>

<variable>

      <name>SessionDescriptor_invalidationIntervalSecs_14044113100931</name>

   <value>1800</value>

</variable>

  </variable-definition>

--> Current session: 30K

Plan: /u01/weblogic/app1/web.xml

<variable-definition>

<variable>

      <name>SessionDescriptor_timeoutSecs_14044113100840</name>

   <value>900</value>

</variable>

<variable>

      <name>SessionDescriptor_invalidationIntervalSecs_14044113100931</name>

   <value>60</value>

</variable>

  </variable-definition>

--> Current session: 20K


Tối ưu Admin Console
Ngoài ra để tăng RAM cho Admin Console do Admin Console bị chậm cần thực hiện:
1.Vào  /u01/Oracle/Middleware/user_projects/domains/myDomain/bin/setDomain.env sửa lại :

1 # Set 1024MB cho AdminServer
2  
3 if [ "${SERVER_NAME}" == "AdminServer" ] ; then
4       USER_MEM_ARGS="-Xms1024m -Xmx1024m"
5     export USER_MEM_ARGS
6 fi
7  
8 #Set 2048MB khởi tạo, tăng max 4096MB
9  
10 if [[ "${SERVER_NAME}" == *WLS_Spaces* ]] ; then
11     USER_MEM_ARGS="-Xms2048m -Xmx4096m"
12     export USER_MEM_ARGS
13 fi

Hy vọng hữu ích cho bạn.
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, oracle oca, oracle ocp, oracle ocm

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master