Sdílet prostřednictvím


Monitorování skriptů Pythonu a R s rozšířenými událostmi ve službě SQL Server Machine Learning Services

Platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL Managed Instance

Zjistěte, jak pomocí rozšířených událostí monitorovat a řešit potíže související s externími skripty SQL Server Machine Learning Services, SQL Server Launchpad a úloh Pythonu nebo R.

Rozšířené události pro SLUŽBU SQL Server Machine Learning Services

Pokud chcete zobrazit seznam událostí souvisejících se službou SQL Server Machine Learning Services, spusťte následující dotaz v sadě SQL Server Management Studio (SSMS),rozšíření MSSQL pro Visual Studio Code, sqlcmd nebo váš oblíbený dotazovací nástroj T-SQL.

SELECT o.name AS event_name, o.description
FROM sys.dm_xe_objects o
JOIN sys.dm_xe_packages p
ON o.package_guid = p.guid
WHERE o.object_type = 'event'
AND p.name = 'SQLSatellite';

Další informace o používání rozšířených událostí naleznete v tématu Nástroje rozšířených událostí.

Další události specifické pro službu Machine Learning Services

Další rozšířené události jsou k dispozici pro komponenty, které souvisejí se SQL Server Machine Learning Services, jako je SQL Server Launchpad, BXLServer a satelitní proces, který spouští Python nebo R runtime. Tyto další rozšířené události se aktivují z externích procesů; proto musí být zachyceny pomocí externího nástroje.

Další informace o tom, jak to provést, najdete v části Shromažďování událostí z externích procesů.

Tabulka rozšířených událostí

Event Description Poznámky
připojení_přijmout Nastane při přijetí nového připojení. Tato událost slouží k protokolování všech pokusů o připojení.
neúspěšné spuštění Spuštění se nezdařilo. Označuje chybu.
Přerušení spojení satelitu Zrušit záznam připojení
přijat signál o zrušení satelitu Aktivuje se, když se přes satelitní připojení přijme zpráva o přerušení.
satelitní_zrušení_odesláno Aktivuje se, když se přes satelitní připojení odešle zpráva o přerušení.
dokončení_satelitního_ověřování Aktivuje se po dokončení ověřování pro připojení přes TCP nebo pojmenovaný kanál.
dokončení oprávnění satelitu Aktivuje se po dokončení autorizace připojení přes TCP nebo pojmenovaný kanál.
satellite_cleanup Aktivuje se při čištění satelitních hovorů. Aktivováno pouze z externího procesu. Viz pokyny ke shromažďování událostí z externích procesů.
odeslán_kus_satelitních_dat Aktivuje se, když satelitní připojení dokončí odesílání jednoho datového bloku. Událost hlásí počet odeslaných řádků, počet sloupců, počet použitých paketů SNI a uplynulý čas v milisekundách při odesílání bloku dat. Tyto informace vám můžou pomoct pochopit, kolik času strávíte předáváním různých typů dat a kolik paketů se používá.
dokončení_příjmu_družicových_dat Aktivuje se, když se přes satelitní připojení obdrží všechna požadovaná data dotazem. Aktivováno pouze z externího procesu. Viz pokyny ke shromažďování událostí z externích procesů.
dokončení_odeslání_dsatelitních_dat Aktivuje se, když se přes satelitní připojení odešlou všechna požadovaná data pro relaci.
zahájení_odesílání_datel_satelitu Aktivuje se při spuštění přenosu dat. Přenos dat začíná těsně před odesláním prvního bloku dat.
satellite_error Používá se k trasování chyby satelitu SQL.
satelit_neplatná_velikost_zprávy Velikost zprávy není platná.
satelitní_zpráva_sloučená Používá se pro trasování slučování zpráv na síťové vrstvě.
satelitní_zpráva_kruhový_buffer_záznam Záznam kruhové vyrovnávací paměti zpráv
souhrn zprávy satelitu souhrnné informace o zasílání zpráv
nesoulad_verze_satelitní_zprávy Pole verze zprávy se neshoduje
satelitní zasílání zpráv Používá se pro trasování událostí zasílání zpráv (vazba, zrušení vazby atd.)
družicová_dílčí_zpráva Používá se k trasování částečných zpráv v síťové vrstvě.
satelitní_schéma_přijato Aktivuje se, když SQL přijme a přečte zprávu schématu.
satelitní_schéma_odesláno Aktivuje se při odesílání zprávy schématu satelitem. Aktivováno pouze z externího procesu. Viz pokyny ke shromažďování událostí z externích procesů.
zahájení_služby_satelitu_zveřejněno Aktivuje se při odeslání zprávy o spuštění služby na Launchpad. To říká Launchpadu, aby spustil externí proces a obsahuje ID nové relace.
satelit_neočekávaná_zpráva_obdržena Aktivuje se, když se přijme neočekávaná zpráva. Označuje chybu.
stack_trace Nastane, když je požadován paměťový výpis procesu. Označuje chybu.
sledovací_událost Používá se pro účely trasování. Tyto události mohou obsahovat zprávy trasování SQL Serveru, Launchpadu a externího procesu. To zahrnuje výstup na stdout a stderr z R.
launchpad_launch_start Aktivuje se, když startpad začne spouštět satelit. Aktivováno pouze z Launchpadu. Viz pokyny ke shromažďování událostí z launchpad.exe.
launchpad_životopis_odeslán Aktivuje se, když launchpad vypustí satelit a odešle obnovovací zprávu na SQL Server. Aktivováno pouze z Launchpadu. Viz pokyny ke shromažďování událostí z launchpad.exe.
odeslán_kus_satelitních_dat Aktivuje se, když satelitní připojení dokončí odesílání jednoho datového bloku. Obsahuje informace o počtu sloupců, počtu řádků, počtu paketů a uplynutí času odeslání bloku dat.
satellite_sessionId_nesouhlas ID relace zprávy se neočekává.

Shromažďování událostí z externích procesů

Služba SQL Server Machine Learning Services spustí některé služby, které běží mimo proces SQL Serveru. Pokud chcete zaznamenávat události související s těmito externími procesy, musíte vytvořit konfigurační soubor trasování událostí a umístit soubor do stejného adresáře jako spustitelný soubor procesu.

Důležité

Od SQL Serveru 2019 se mechanismus izolace změnil. Proto potřebujete udělit příslušná oprávnění adresáři, kde je uložený konfigurační soubor trasování událostí. Další informace o tom, jak tato oprávnění nastavit, najdete v části Oprávnění k souborům v SYSTÉMU SQL Server 2019 ve Windows: Změny izolace pro službu Machine Learning Services.

  • Launchpad SQL Serveru

    Pokud chcete zachytit události související s launchpadem, umístěte soubor.xml do adresáře Binn pro instanci SQL Serveru. Ve výchozí instalaci by to bylo:

    C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.

  • BXLServer je satelitní proces, který podporuje rozšiřitelnost SQL s externími skriptovacími jazyky, jako je R nebo Python. Pro každou instanci externího jazyka se spustí samostatná instance BxlServer.

    Pokud chcete zaznamenat události související s BXLServer, umístěte .xml soubor do instalačního adresáře R nebo Pythonu. Ve výchozí instalaci by to bylo:

    R:C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\R_SERVICES\library\RevoScaleR\rxLibs\x64.

    Python:C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\PYTHON_SERVICES\Lib\site-packages\revoscalepy\rxLibs.

Konfigurační soubor musí mít stejný název jako spustitelný soubor s použitím formátu "[name].xevents.xml". Jinými slovy, soubory musí být pojmenovány takto:

  • Launchpad.xevents.xml
  • bxlserver.xevents.xml

Samotný konfigurační soubor má následující formát:

<?xml version="1.0" encoding="utf-8"?>  
<event_sessions>  
<event_session name="[session name]" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">  
    <description owner="you">Xevent for launchpad or bxl server.</description>  
    <event package="SQLSatellite" name="[XEvent Name 1]" />  
    <event package="SQLSatellite" name="[XEvent Name 2]" />  
    <target package="package0" name="event_file">  
      <parameter name="filename" value="[SessionName].xel" />  
      <parameter name="max_file_size" value="10" />  
      <parameter name="max_rollover_files" value="10" />  
    </target>  
  </event_session>  
</event_sessions>  
  • Pokud chcete nakonfigurovat trasování, upravte zástupný symbol pro název relace, zástupný symbol pro název souboru ([SessionName].xel) a názvy událostí, které chcete zaznamenat, například [XEvent Name 1], [XEvent Name 1].
  • Může se zobrazit libovolný počet značek balíčku událostí a budou shromažďovány, pokud je atribut name správný.

Příklad: Zachycení událostí Launchpadu

Následující příklad ukazuje definici trasování události pro službu Launchpad:

<?xml version="1.0" encoding="utf-8"?>  
<event_sessions>  
<event_session name="sqlsatelliteut" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">  
    <description owner="hay">Xevent for sql tdd runner.</description>  
    <event package="SQLSatellite" name="launchpad_launch_start" />  
    <event package="SQLSatellite" name="launchpad_resume_sent" />  
    <target package="package0" name="event_file">  
      <parameter name="filename" value="launchpad_session.xel" />  
      <parameter name="max_file_size" value="10" />  
      <parameter name="max_rollover_files" value="10" />  
    </target>  
  </event_session>  
</event_sessions>  
  • Umístěte soubor.xml do adresáře Binn pro instanci SQL Serveru.
  • Tento soubor musí mít název Launchpad.xevents.xml.

Příklad: Zaznamenání událostí BXLServer

Následující příklad ukazuje definici trasování událostí pro spustitelný soubor BXLServer.

<?xml version="1.0" encoding="utf-8"?>  
<event_sessions>  
 <event_session name="sqlsatelliteut" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">  
    <description owner="hay">Xevent for sql tdd runner.</description>  
    <event package="SQLSatellite" name="satellite_abort_received" />  
    <event package="SQLSatellite" name="satellite_authentication_completion" />  
    <event package="SQLSatellite" name="satellite_cleanup" />  
    <event package="SQLSatellite" name="satellite_data_receive_completion" />  
    <event package="SQLSatellite" name="satellite_data_send_completion" />  
    <event package="SQLSatellite" name="satellite_data_send_start" />  
    <event package="SQLSatellite" name="satellite_schema_sent" />   
    <event package="SQLSatellite" name="satellite_unexpected_message_received" />    
    <event package="SQLSatellite" name="satellite_data_chunk_sent" />   
    <target package="package0" name="event_file">  
      <parameter name="filename" value="satellite_session.xel" />  
      <parameter name="max_file_size" value="10" />  
      <parameter name="max_rollover_files" value="10" />  
    </target>  
  </event_session>  
</event_sessions>  
  • Umístěte .xml soubor do stejného adresáře jako spustitelný soubor BXLServer.
  • Tento soubor musí mít název bxlserver.xevents.xml.

Další kroky