スケジュールに基づいてファイルとフォルダのバックアップを実行するWindowsサービスを開発しました。次のタスクを実行します。
1-フォルダとファイルのリストを読み取ります
2-それらを圧縮して一時ディレクトリに配置します(大きなファイルを50MBのチャンクに分割します)
3-一時フォルダのコンテンツをFTPにアップロードします
4-一時フォルダを削除します
現在、一時フォルダのサイズは約3GBになる可能性があり、サービスは1日2回のように実行されます。これで、サーバーがランダムに再起動します(サービスがデータを作成またはアップロードしている間ではありません)。これは、サーバーを再起動する原因となるI/Oの問題である可能性があると考え始めています。
.NETでサーバーを最適化するための最良の方法は何ですか?PriorityClassをBelowNormalに設定できますが、役に立たないと思います。私のonStartはこのように見えます...
Protected Overrides Sub OnStart(ByVal args() As String)
' Add code here to start your service. This method should set things
' in motion so your service can do its work.
Try
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.BelowNormal
Dim s As New BackupLibraryV2.main
Catch ex As Exception
BackupLibraryV2.util.LogEntry("", ex.Message, DateTime.Now, DateTime.Now)
End Try
End Sub
(新しいスレッドでサービスを開始する必要がありますか?)
CPUをあまり使用しないようにサーバーを最適化するために試すことができる他の提案はありますか?
再起動ログは次のとおりです。
crash dump file: C:\Windows\Minidump\120212-14227-01.dmp
This was probably caused by the following module: ntoskrnl.exe (nt+0x7EFC0)
Bugcheck code: 0x3B (0xC0000005, 0xFFFFF800019A7382, 0xFFFFF88008DFA9E0, 0x0)
Error: SYSTEM_SERVICE_EXCEPTION
file path: C:\Windows\system32\ntoskrnl.exe
product: Microsoft® Windows® Operating System
company: Microsoft Corporation
description: NT Kernel & System
Bug check description: This indicates that an exception happened while executing a routine that transitions from non-privileged code to privileged code.
This appears to be a typical software driver bug and is not likely to be caused by a hardware problem.
The crash took place in the Windows kernel. Possibly this problem is caused by another driver that cannot be identified at this time.