Il completamento della richiesta di I/O ha impiegato più di 15 secondi. Ciò può indicare colli di bottiglia di I/O di SQL Server. Le prestazioni di SQL Server si basano molto sulle prestazioni del disco. Nota: per impostazione predefinita, questa regola è disabilitata. Usare gli override per abilitarla quando necessario.
Il completamento della richiesta di I/O ha impiegato più di 15 secondi. Ciò può indicare colli di bottiglia di I/O di SQL Server. Le prestazioni di SQL Server si basano molto sulle prestazioni del disco. Nota: per impostazione predefinita, questa regola è disabilitata. Usare gli override per abilitarla quando necessario.
SQL Server sta generando più richieste di I/O di quante ne possono essere gestite dal sottosistema di I/O su disco.
Potrebbe esserci un problema con il sottosistema di I/O, un problema con il driver/firmware, una configurazione non corretta nel sottosistema di I/O o un problema di compressione per cui le prestazioni dei dischi risultano molto rallentate con conseguenti ripercussioni su SQL Server.
Un altro processo nel sistema, ad esempio un'analisi antivirus, un backup del sistema e così via, sta saturando i dischi con richieste di I/O. Pertanto, le richieste di I/O inviate da SQL Server possono risultare rallentate.
Escludere i file di SQL Server dall'analisi antivirus.
Non inserire i file di SQL Server in unità compresse.
Distribuire i file di dati e i file di log delle transazioni di SQL Server con le unità.
Se la richiesta dei "I/O richiede più tempo" avviso è per il database tempdb, attiva il flag di traccia 1118 e aumenta i file di dati di tempdb, consultare http://support.microsoft.com/kb/2154845
Se nessuna delle soluzioni sopra indicate risolve il problema, raccogliere i contatori PerfMon.
Name | Description | Default Value |
Enabled | Enables or disables the workflow. | No |
Interval (seconds) | The recurring interval of time in seconds in which to run the workflow. | 300 |
Priority | Defines Alert Priority. | 1 |
Severity | Defines Alert Severity. | 1 |
Synchronization Time | Synchronization Time |
|
Timeout (seconds) | Specifies the time the workflow is allowed to run before being closed and marked as failed. | 200 |
Timeout for database connection (seconds) | The workflow will fail and register an event, if it cannot access the database during the specified period. | 15 |
Target | Microsoft.SQLServer.Linux.DBEngine | ||
Category | EventCollection | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{ACF21E73-7DD4-4899-A1BF-5BCBACF479EF}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.IORequestsTakingLongerThen15SecondsToComplete" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{ACF21E73-7DD4-4899-A1BF-5BCBACF479EF}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>833</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.IORequestsTakingLongerThen15SecondsToComplete.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>