Presentation is loading. Please wait.

Presentation is loading. Please wait.

Best Practices for AppServers & WebSpeed Operation Dan Foreman Progress Expert, BravePoint.

Similar presentations


Presentation on theme: "Best Practices for AppServers & WebSpeed Operation Dan Foreman Progress Expert, BravePoint."— Presentation transcript:

1 Best Practices for AppServers & WebSpeed Operation Dan Foreman Progress Expert, BravePoint

2 Introduction – Dan Foreman Progress User since 1984Progress User since 1984 Author of several publications & utilitiesAuthor of several publications & utilities PublicationsPublications –Progress Performance Tuning Guide –Progress Database Administration Guide –Progress Virtual System Tables –Progress V10 DBA Jumpstart UtilitiesUtilities –ProMonitor – Database monitoring –ProCheck – AppServer/WebSpeed monitoring –Pro Dump&Load – Dump/load with minimum downtime –Balanced Benchmark – Load testing tool

3 Glossary/Terminology AS = AppServerAS = AppServer WS = WebSpeed AgentWS = WebSpeed Agent Progress Explorer – the original graphical tool for managing AS, WS, and other processesProgress Explorer – the original graphical tool for managing AS, WS, and other processes OpenEdge Explorer – replacement for Progress Explorer starting in V10.2; shares the same interface as OpenEdge ManagementOpenEdge Explorer – replacement for Progress Explorer starting in V10.2; shares the same interface as OpenEdge Management

4 Starting & Stopping – Command Line or GUI Advantages of GUI (i.e. Progress/OpenEdge Explorer)Advantages of GUI (i.e. Progress/OpenEdge Explorer) –Easy to use –Can easily access resources on multiple servers –Safer way to edit the ubroker.properties file although using mergeprop is a safe way to manually edit the properties files

5 Starting & Stopping – Command Line or GUI Disadvantages of GUIDisadvantages of GUI –Some attributes are not visible (no check box or fill in) although they can be referenced by using a parameter (.pf) file –In Progress Explorer right-clicking can be dangerous if your finger or mouse slips

6 Starting & Stopping – Command Line or GUI Advantages of Command LineAdvantages of Command Line –Scriptable –Repeatable –Better logging Disadvantages of Command LineDisadvantages of Command Line –Sometimes not as easy to talk someone through on the phone –Primitive method (in the eyes of some)

7 Mode of Operation StateAwareStateAware StateResetStateReset StatelessStateless StateFreeStateFree

8 StateAware & StateReset The Advantage of StateAware/StateReset is that the AppServer maintains application context. This is because each user of an application is bound to and locks a single Appserver for the duration an "Application Session". This binding is also the main disadvantage since it means that it is necessary to spawn one AppServer for each active user, which leads to the consumption of more OS resources and potentially more licensesThe Advantage of StateAware/StateReset is that the AppServer maintains application context. This is because each user of an application is bound to and locks a single Appserver for the duration an "Application Session". This binding is also the main disadvantage since it means that it is necessary to spawn one AppServer for each active user, which leads to the consumption of more OS resources and potentially more licenses

9 Stateless & StateFree Stateless and StateFree are shared by multiple Clients and should only be locked by a Client for a very short period of time. Since a single AS/WS can service many Clients (with well written code), this mode of operation is very scalable and the most widely used; The disadvantage is that the Application must be written to maintain user contextStateless and StateFree are shared by multiple Clients and should only be locked by a Client for a very short period of time. Since a single AS/WS can service many Clients (with well written code), this mode of operation is very scalable and the most widely used; The disadvantage is that the Application must be written to maintain user context

10 Performance Tuning AS & WS are Progress Clients just like GUI and CHUI 4GL/ABL Clients and use the same tuning parametersAS & WS are Progress Clients just like GUI and CHUI 4GL/ABL Clients and use the same tuning parameters

11 Performance Tuning Quick Request (-q)Quick Request (-q) –Trim all AppServers when implementing new code Execution Buffer (-mmax )Execution Buffer (-mmax ) –The default of 3072k is usually too small for AS & WS –Use a minimum of

12 Performance Tuning Sorting (-TB 31 -TM 32)Sorting (-TB 31 -TM 32) –The Progress documentation recommends –TB 24 but 24 has slower performance than 31

13 Performance Tuning Temp Table Buffers (-Bt )Temp Table Buffers (-Bt ) –Most AS/WS applications make heavy use of Temp Tables Temp Table DB Blocksize (-tmpbsize #)Temp Table DB Blocksize (-tmpbsize #) –Set explicitly because the default value has changed multiple times

14 Performance Tuning Message Size (-Mm)Message Size (-Mm) –Somewhat tricky to implement because it must be used on both the AS/WS and the database(s) that the AS/WS connects to –Good performance improvement with NO- LOCK reads –Recommend 4096 or 8192

15 Performance Tuning Message Compression (-mc)Message Compression (-mc) –Best gains seen over a WAN or a very slow LAN connection

16 Performance Tuning Shared Procedure Libraries (sometimes called Memory Mapped Procedure Libraries)Shared Procedure Libraries (sometimes called Memory Mapped Procedure Libraries) –To unload and make updates to the library, it may be necessary to trim all of the AS & WS –Main benefits are for large scale AS/WS sites

17 Performance Tuning For best performance, AS and WS should normally reside on the same server as the DatabaseFor best performance, AS and WS should normally reside on the same server as the Database

18 Other Parameters -rereadnolock-rereadnolock –Extremely important for AS and WS –Numerous Kbase entries describe this parameter

19 Do I want to talk to the Name Server? Depending upon the Mode of operation & programming model used, AS & WS calls might need to communicate with the Name ServerDepending upon the Mode of operation & programming model used, AS & WS calls might need to communicate with the Name Server Performance can be improved by stopping this conversation by using the –DirectConnect parameterPerformance can be improved by stopping this conversation by using the –DirectConnect parameter

20 Do I want to talk to the Name Server? Disadvantages of -DirectConnectDisadvantages of -DirectConnect –No AS Load Balancing –No AS Failover –The Connection port is hardcoded

21 Logging Can be set for all or individual AS/WSCan be set for all or individual AS/WS Logging level can be dynamically changed in OE 10.2BLogging level can be dynamically changed in OE 10.2B

22 Logging Higher logging levels canHigher logging levels can –Degrade performance –Cause the logs to grow quickly –The increased verbosity can make it difficult to find what you are looking for when there are problems Lower logging levels can make it difficult to troubleshoot problemsLower logging levels can make it difficult to troubleshoot problems

23 Logging In general the Server log is the first place to look when troubleshootingIn general the Server log is the first place to look when troubleshooting

24 Monitoring Options GraphicalGraphical –Progress Explorer – V10.1 and earlier –OpenEdge Explorer – V10.2 and later –OpenEdge Management – AS/WS capabilities added in late V10

25 Monitoring Options Command LineCommand Line –asbman –wtbman OtherOther –Actional – a Progress product –ProCheck – from BravePoint

26 What to Monitor Memory utilizationMemory utilization –Java memory utilization –Memory utilization of _progres & _proapsv processes –Memory leaks caused by code that doesnt cleanup after itself are magnified on AS & WS

27 What to Monitor WebSpeedWebSpeed –Should never see LOCKED –Send an Alert if there are no AVAILABLE Agents –Average Request Duration (importance is dependent upon the WS mode of operation) –Average Request Wait (importance is dependent upon the WS mode of operation)

28 What to Monitor AppServerAppServer –If an AS shows as SENDING, that is usually R- Code execution –Send an Alert if there are no AVAILABLE Agents –Average Request Duration (importance is dependent upon the AS mode of operation) –Average Request Wait (importance is dependent upon the AS mode of operation)

29 Miscellaneous Tips Use separate AppServer Brokers for ASYNC and SYNC callsUse separate AppServer Brokers for ASYNC and SYNC calls In proxyGen there is a choice of adding the procedure as persistent or non- persistent. In order to ensure the best performance out of WebServices, it is a good idea to configure the procedures as non-persistent. Otherwise you may find your StateFree AppServers all locked by just a few usersIn proxyGen there is a choice of adding the procedure as persistent or non- persistent. In order to ensure the best performance out of WebServices, it is a good idea to configure the procedures as non-persistent. Otherwise you may find your StateFree AppServers all locked by just a few users

30 New Admin Features in V10.1B Smart Connections (10.1B) – Improved connection procedure connection (e.g. failure) reporting from the connection procedureSmart Connections (10.1B) – Improved connection procedure connection (e.g. failure) reporting from the connection procedure Life Span (10.1B) - shutdown/restart AS/WS after a specified period of timeLife Span (10.1B) - shutdown/restart AS/WS after a specified period of time –serverLifespan=0 –serverLifespanPadding=5

31 New Admin Features in V10.2A List AppServer Connections (10.2A) – show a list of connections to an AS/WSList AppServer Connections (10.2A) – show a list of connections to an AS/WS –Examples on the next two slides

32 List AppServer Connections >asbman -i asbroker1 –listclients ConnHdl User Rmt IP Rmt Port State ConnHdl User Rmt IP Rmt Port State CONNECTED CONNECTED CONNECTED CONNECTED

33 List AppServer Connections > asbman -i asbroker1 -clientdetail 2 conn hdl= 2 conn hdl= 2 user name= user name= remote addr= remote addr= remote port= 1203 remote port= 1203 connection state= CONNECTED connection state= CONNECTED conn ID= ::asbroker1::3090:: conn ID= ::asbroker1::3090:: request count= 1 request count= 1 agent PID= 2176 agent PID= 2176 agent port= 2002 agent port= 2002

34 New Admin Features in V10.2B ASK - AppServer KeepAlive - (10.2B)ASK - AppServer KeepAlive - (10.2B) –appServerKeepaliveCapabilities=denyClien tASK,denyServerASK –serverASKActivityTimeout=60 –serverASKResponseTimeout=60 Dynamic Properties (10.2B)Dynamic Properties (10.2B) AutoStop on Timeout (10.2B) – Limit the amount of time given to an operationAutoStop on Timeout (10.2B) – Limit the amount of time given to an operation

35 New Admin Features in V10.2B Actional Monitoring (10.2B) – Use Actional to monitor AS/WS in addition to other resources in an SOA environmentActional Monitoring (10.2B) – Use Actional to monitor AS/WS in addition to other resources in an SOA environment

36 Conclusion Thank you for comingThank you for coming Contact Info for Dan ForemanContact Info for Dan Foreman –Telephone


Download ppt "Best Practices for AppServers & WebSpeed Operation Dan Foreman Progress Expert, BravePoint."

Similar presentations


Ads by Google