SQL Server on Linux を Azure Linux 仮想マシンで使用する場合の注意点について

高原 伸城

Support Escalation Engineer

 

皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。

今回は、Azure 管理ポータルのギャラリーからデプロイした SQL Server 2017 on Linux を含む Azure Linux 仮想マシンを使用する場合の注意点について紹介します。

SQL Server 2017 on Linux を使用するうえで スワップ領域 (Swap) を作成することが推奨されていますが、Azure 管理ポータルのギャラリーからデプロイした SQL Server 2017 on Linux を含むAzure Linux 仮想マシンの場合、デプロイ後の Linux には、スワップ領域 (Swap) が存在しないイメージが存在します。

 

# Free SQL Server License: SQL Server 2017 Developer on Ubuntu Server 16.04 LTS (スワップ領域が存在しない)

 *****@*****$ cat /proc/swapsFilename                                Type            Size    Used    Priority

 

# Free SQL Server License: SQL Server 2017 Developer on Red Hat Enterprise Linux 7.4 (RHEL) (スワップ領域が存在する)

 *****@*****$ cat /proc/swapsFilename                                Type            Size    Used    Priority /mnt/resource/swapfile                  file            2097148 0       -1 

 

なお、Azure Linux 仮想マシンの場合、Windows Azure Linux Agent というプロセスが存在しており、このエージェントのコンフィグレーション ファイルの ResourceDisk.EnableSwap 及び ResourceDisk.SwapSizeMB のパラメータを変更後、OSの再起動を実施することで、スワップ領域を作成することが可能となっています。

※ Windows Azure Linux Agent の詳細は、以下の公開情報を参照 Azure Linux エージェントの理解と使用

 

実際に、Azure Linux 仮想マシンにスワップ領域を作成してみましょう。

*****@*****$ sudo vi /etc/waagent.conf [変更前] # Create and use swapfile on resource disk.ResourceDisk.EnableSwap=n# Size of the swapfile.ResourceDisk.SwapSizeMB=0 [変更後] # Create and use swapfile on resource disk.ResourceDisk.EnableSwap=y# Size of the swapfile.ResourceDisk.SwapSizeMB=4096// OS 再起動 [スワップ領域の確認] *****@*****$ sudo swapon –sFilename                                Type            Size    Used    Priority /mnt/resource/swapfile                  file            4194300 0       -1

 

上記の手順で スワップ領域が作成されることが確認できました。

なお、上記の手順で スワップ領域が作成されない場合は、 /mnt/resource/swapfile にスワップ領域を手動で作成ください。

もちろん、利用するメモリの上限として MaxServerMemory の設定は、Azure 仮想マシン環境上でも是非設定して下さい。

DO’s&DONT’s #12: やった方がいいこと – max server memory を設定する

 

安定稼働の一助となりましたら幸いです。

※ 本Blogの内容は、2017年12月現在の内容となっております。