none
Linux에서 sqlmin.dll 관련 Crash가 계속 발생합니다. RRS feed

  • 질문

  • Linux에서 SQL Server가 지속적으로 Crash가 발생해 도움 요청드립니다.

    OS는 CentOS 7이고 VM가상 머신를 사용합니다.

    쉬핑 구성이 되어 있습니다. Windows 서버가 메인 Linux 버전이 보조서버이고 cifs를 이용해 Windows 공유폴더를 마운트하고 Copy없이 복원만 하고 있습니다.

    쉬핑이 구성된 DB는 총 6개이고 모두 동시에 복원합니다. 복원은 Standby 모드로 복원합니다.

    쉬핑 보조서버 역할만 사용하고 있습니다.


    미니덤프파일 분석 내용은 아래와 같습니다.

    원인과 해결방안에 대해 참고할 사항이 있으면 이야기부탁드립니다.

    ================================================================================

     Analysis Summary
    Error
    Description Recommendation
    WARNING - DebugDiag was not able to locate debug symbols for \sqlmin.dll, so the information below may be incomplete.

    In SQLDump3291.mdmp the assembly instruction at sqlmin+22ca5 in C:\binn\sqlmin.dll has caused an access violation exception (0xC0000005) when trying to read from memory location 0x000050f8 on thread 0
    Please follow up with the vendor for C:\binn\sqlmin.dll
    Notification
    Description Recommendation
    One or more of the selected rules were not completed. See the Analysis Rule Summary for more information.
    DebugDiag determined that this dump file (SQLDump3291.mdmp) is a crash dump and did not perform any hang analysis. To run both hang rules and crash rules on crash dumps, select the following option in the 'Preferences' tab of the 'Settings' page in DebugDiag.Analysis.exe:

        'For crash dumps, run hang rules and crash rules'
    If you are new to the PerformanceAnalysis rule, please read the abstract for more information on how to interpret the results of this report.   Note that the abstract may be hidden if the Report Legend section is collapsed.
    Analysis Details

    CrashHangAnalysis

    Report for SQLDump3291.mdmp

    Type of Analysis Performed Crash Analysis
    Machine Name 2019
    Operating System Windows 10 - 9200
    Number Of Processors
    Process ID 28
    Process Image C:\binn\sqlservr.exe
    Command Line sqlservr.exe
    System Up-Time 05:02:23
    Process Up-Time 3814 day(s) 18:32:28
    Processor Type X64
    Process Bitness 64-Bit

    Faulting Thread

    Create time   1899-12-30 오전 12:00:00
    Time spent in user mode   0 Days 0:0:0.0
    Time spent in kernel mode   0 Days 0:0:0.0

        Arg 1     Arg 2     Arg 3     Arg 4   Source
    sqlmin+22ca5     0000000`00000001     0000011`06dbd240     000000d`8307f289     0000000`00000002   

    CLR Information

    Exception Information

    SQLMIN+22CA5WARNING - DebugDiag was not able to locate debug symbols for \sqlmin.dll, so the information below may be incomplete.

    In SQLDump3291.mdmp the assembly instruction at sqlmin+22ca5 in C:\binn\sqlmin.dll has caused an access violation exception (0xC0000005) when trying to read from memory location 0x000050f8 on thread 0

    Module Information

    Image Name: C:\binn\sqlmin.dll   Symbol Type: None
    Base address: 0x00000000`00000000   Time Stamp: Sat Jul 13 12:25:40 2019
    Checksum: 0x00000000`00000000   Comments:
    COM DLL: False   Company Name:
    ISAPIExtension: False   File Description:
    ISAPIFilter: False   File Version:
    Managed DLL: False   Internal Name:
    VB DLL: False   Legal Copyright:
    Loaded Image Name: sqlmin.dll   Legal Trademarks:
    Mapped Image Name:   Original filename:
    Module name: sqlmin   Private Build:
    Single Threaded: False   Product Name:
    Module Size: 49.99 MBytes   Product Version:
    Symbol File Name: sqlmin.dll   Special Build: &

    PerfAnalysis

    CLR Information

    Input Summary

    Alias System Time Process Up-Time Relative Time Dump Name
    "Dump 1" 1910-06-09 오후 6:32:28 3814 day(s) 18:32:28 F:\Desktop\a\SQLDump3291.mdmp

    Report Legend

    Abstract

    This rule is designed to assist in the troubleshooting of performance issues by quickly narrowing the focus of investigation to the particular operation(s), threads(s), and/or function(s) of interest, which would otherwise be an extremely tedious task - particularly when manually reviewing a large number of dump files of a busy multithreaded application.

    It analyzes multiple dump files of a single process collected during the problem and provides profiler-style function statistcs by treating each dump as a data sample - so the more data samples available, the more accurate the results will be.

    Statistics are provided for the entire process as well as for various subsets or "rollups" (i.e. stats for only the top 5 threads sorted by cpu consumption, or only the top 5 ASP requests sorted by duration, etc.).  Typically the statistics for a particular subset, rather than the entire process, are more helpful for identifying the root of the performance issue, since typically much of the process remains in a healthy state while only the subset contributes to the performance problem.

    In later releases, this rule may seek to identify particular known issues. In this release, the rule simply provides the user with the statistics to facilitate a faster review of multiple dump files.

    Glossary
    Term Description
    Operation    A single logical unit of work performed by an application - for example, the execution of an ASP page (and any components invoked by the page).  A logical operation may span across multiple threads and processes, though in the simple case it is executed on a single thread.
    Hits The number of times a particular function appears within a given scope. For example the scope might be a particular thread, a rollup of several high CPU threads, or all threads in the process.
    Operation Types
    Type Description
    ASP An incoming ASP request
    ASP.NET An incoming ASP.NET request (includes WebServices)
    COM An incoming COM call (includes COM+)
    Unknown None of the above (i.e. custom code)
    Stack Frame Notation
    Markup Frame Type Description
    blue User Function Functions in modules not belonging to the system (i.e. 3rd party)
    blue italic Top User Function - Local One of the most frequent user functions in the particular operation or set of operations
    red bold Top User Function - Global One of the most frequent user functions in all operations
    red bold italic Top User Function - Both One of the most frequent user functions in both the particular operation(s), as well as in all operations
    dark gray System Function Functions in modules belonging to the system
    light gray Boilerplate Function Extremely common system functions which can generally be safely ignored

    Performance Summary

    Statistical Rollups

    All Operations



    Tip:  To search on any particular function in the list below, highlight it with the mouse then press CTRL+C, CTRL+F, CTRL+V. This will highlight all the call stacks which contain the particular function and allow you to jump between them in the browser.

    All user functions in all operations      (excludes system functions)

    Analysis Rule Summary
    Rule Name Status Details
    CrashHangAnalysis - v (2.3.0.37) Completed  
    DotNetMemoryAnalysis - v (2.3.0.37) Skipped None of the selected dumps are full usermode dumps with the .NET runtime loaded.
    SharePointAnalysis - v (2.3.0.37) Skipped None of the selected dumps are full dumps with the SharePoint runtime loaded.
    KernelCrashHangAnalysis - v (2.3.0.37) Skipped This rule did not apply to any of the dumps selected for analysis.
    MemoryAnalysis - v (2.3.0.37) Skipped None of the selected dumps are full usermode dumps.
    PerfAnalysis - v (2.3.0.37) Failed Dump File:  F:\Desktop\a\SQLDump3291.mdmp;

    Type:  System.ArgumentException

    Message:  동일한 키를 사용하는 항목이 이미 추가되었습니다.

    Stack Trace:
    위치: System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
    위치: System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
    위치: DebugDiag.AnalysisRules.COperations.get_BoilerPlateFunctionsByOpType()
    위치: DebugDiag.AnalysisRules.COperations.get_AllBoilerPlateFunctions()
    위치: DebugDiag.AnalysisRules.PerfFunctions.FormatFunctionName(String fnName, Boolean bChop, IHasTopUserFunctions operationOrOperations)
    위치: DebugDiag.AnalysisRules.COperations.ShowFunctionStats(Object title, Int32 functionType)
    위치: DebugDiag.AnalysisRules.COperations.ShowStatsEx(String title, String tip, Boolean collapsed, String key)
    위치: DebugDiag.AnalysisRules.PerfFunctions.ReportPerfSummary()
    위치: DebugDiag.AnalysisRules.PerfFunctions.ReportAllOperations()
    위치: DebugDiag.AnalysisRules.PerfAnalysis.RunAnalysisRule(NetScriptManager manager, NetProgress progress)
    위치: DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)



    • 편집됨 Maxpia 2019년 10월 2일 수요일 오전 9:31
    2019년 10월 2일 수요일 오전 5:11

답변

  • 조언 감사합니다.

    우선 제가 사용한 환경이 가상화 환경인 것을 감안해

    https://docs.microsoft.com/ko-kr/sql/linux/sql-server-linux-performance-best-practices?view=sql-server-2017 에서 

    Virtual Machines 및 동적 메모리

    가상 머신에서 SQL Server on Linux를 실행하는 경우 가상 머신에 대해 예약된 메모리 크기를 수정하는 옵션을 선택해야 합니다. Hyper-V 동적 메모리와 같은 기능을 사용하지 않도록 합니다.


    적용 후 문제가 해결되었습니다.

    혹시, 유사한 사례가 발생하시는 분은 참고하시면 좋을 것 같습니다.

    • 답변으로 표시됨 Maxpia 2019년 10월 10일 목요일 오전 12:24
    2019년 10월 10일 목요일 오전 12:23

모든 응답

  • 이 포럼에 덤프 파일을 분석할 수 있는 분이 거의 없습니다. 아래 링크에서 영문으로 전문 엔지니어에게 도움을 요청하시면 문제가 더잘 처리될것 같습니다.

    https://support.microsoft.com/en-us/assistedsupportproducts

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2019년 10월 4일 금요일 오전 6:16
    중재자
  • 조언 감사합니다.

    우선 제가 사용한 환경이 가상화 환경인 것을 감안해

    https://docs.microsoft.com/ko-kr/sql/linux/sql-server-linux-performance-best-practices?view=sql-server-2017 에서 

    Virtual Machines 및 동적 메모리

    가상 머신에서 SQL Server on Linux를 실행하는 경우 가상 머신에 대해 예약된 메모리 크기를 수정하는 옵션을 선택해야 합니다. Hyper-V 동적 메모리와 같은 기능을 사용하지 않도록 합니다.


    적용 후 문제가 해결되었습니다.

    혹시, 유사한 사례가 발생하시는 분은 참고하시면 좋을 것 같습니다.

    • 답변으로 표시됨 Maxpia 2019년 10월 10일 목요일 오전 12:24
    2019년 10월 10일 목요일 오전 12:23