When a SmartObject retrieves a substantial volume of data, it can cause significant performance strain on the server. This is particularly evident when the data size exceeds thresholds like 500 MB or 1 GB, which may result in high CPU usage and potential server instability.
Current Challenge: Identifying SmartObjects that cause performance issues currently requires capturing a memory dump and performing deep analysis, a time-consuming process that delays troubleshooting and resolution.
Proposed Enhancement:
Configurable Error Logging: Introduce an error logging mechanism that records incidents when a SmartObject call returns data larger than a specified size (e.g., 500 MB or 1 GB). This size limit should be configurable via a settings file.
Non-Disruptive Logging: Ensure the logging captures information without interrupting the transaction, allowing for continuous operations while still gathering valuable diagnostic data.
Adaptive Performance Monitoring: Add options for administrators to set warnings or thresholds to manage large data retrievals and prevent excessive resource consumption.
Cloud and On-Premises Compatibility: Implement a similar monitoring capability for cloud environments to ensure consistent and proactive performance management.
Benefits:
Simplifies the identification of problematic SmartObjects without extensive memory analysis.
Enhances server stability by allowing administrators to monitor and manage large data retrievals.
Offers a customizable solution that adapts to different environments and performance requirements.
Helps prevent unexpected CPU spikes and maintains consistent performance.
Can be interesting to have log when SmartObject need more than 30s (or 1 minutes) to be executed.