Amit Gujarathi
Giga Sage
Giga Sage

Effective Troubleshooting of Slow Transactions in ServiceNow

 

ServiceNow, a leading digital workflow platform, occasionally encounters performance issues like slow transaction times. Such delays can hinder the efficiency of business operations. This article provides a comprehensive guide on troubleshooting slow transactions in ServiceNow, ensuring that your system runs smoothly and efficiently.

 

Understanding Transaction Delays

When a UI transaction in ServiceNow takes longer than expected, it's crucial to identify the source of the delay. Common causes include Access Control Lists (ACLs), business rules, database issues, or client-side problems. ServiceNow's robust logging system captures timings for each component, which can be accessed via the Filter Navigator > System Logs.

 

Key Considerations

  • Ensure troubleshooting is performed on the same node where the transaction occurred.
  • Only transactions with a response time exceeding 100ms appear in logs. Enable Debug SQL detailed in the Filter Navigator for comprehensive database queries analysis.

 

Methodologies for Investigating Slow Transactions

  • Option 1A: Using Node Log File Browser

    • Reproduce the Slow Transaction: This step is crucial for analyzing the specific issue.
    • Access System Logs: Navigate to Filter Navigator > System Logs > Transactions (All user) and personalize the columns list to include metrics like browser time, business rule time, client response time, etc.
    • Filter and Sort Transactions: Modify the list condition filter to created_by = <affected_user> and sort by created desc to focus on the affected user.
    • Identify and Analyze the Slow Transaction: Look for the transaction in the log and note its SessionID and Transaction Number.
    • Deep Dive into Node Log File Browser: Adjust the 'Start time' and 'End time' to encompass the transaction time, input the SessionID, and search using the Transaction Number.
  • Option 1B: Downloading and Analyzing Localhost Log File

    • Download the localhost_log File: Navigate to Filter Navigator > Node Log File Download and adjust the list to show 'Name' starting with localhost.
    • Interrogate the Logs Locally: Use text editors or terminal tools like grep and less to analyze the logs, focusing on the SessionID, Transaction Number, or txid value.
  • Option 2: Session Debug (Recommended)

    • Enable Session Debug: Go to Filter Navigator > System Diagnostics > Session Debug > Enable All.
    • Reproduce and Review: Perform the transaction again and analyze the output in the session log window, particularly looking for entries marked as EXCESSIVE.

Next Steps in Troubleshooting

Based on where the delay predominantly occurs, focus your investigation accordingly:

  • ACLs: If ACL processing time is significant, review and optimize ACL configurations.
  • UI Actions: High UI action times warrant an investigation into UI element performance.
  • Database Queries: If SQL time dominates, examine the query efficiency, data result set size, and the potential benefits of index hints or indexes.

Conclusion

Timely identification and resolution of slow transactions in ServiceNow are essential for maintaining an efficient workflow. By following these structured troubleshooting steps, you can swiftly pinpoint and address performance bottlenecks, ensuring your ServiceNow platform operates at its optimal capacity.

 

Note: This guide is applicable to all ServiceNow releases and should be adapted as per the specific environment and transaction types encountered.

 

Version history
Last update:
‎11-30-2023 01:28 AM
Updated by:
Contributors