SlideShare a Scribd company logo
1 of 3
Download to read offline
サービス管理 サービスの管理ファイル 実体は「/lib/systemd/system/mssql-server.service」である
「systemctl enable mssql-server.service」を実行することで、
「/etc/systemd/system/multi-user.target.wants/mssql-server.service」にシンボリックリンクが作成される
設定変更
Configure SQL Server on Linux with the mssql-conf tool
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf
•
一部の設定は「mssql-conf」を使用して設定を変更
ファイアウォール Ubuntu
ufwの基本操作
https://qiita.com/RyoMa_0923/items/681f86196997bea236f0
•
ufw
RHEL
4.5. ファイアウォールの使用
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls
•
firewalld
リモート接続 リモート管理
インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識
https://qiita.com/tag1216/items/5d06bad7468f731f590e
•
ssh
ファイルコピー
SCP (1)
http://euske.github.io/openssh-jman/scp.html
•
scp
ソフトウェア更新 Ubuntu パッケージ情報 (リポジトリ情報) の更
新
apt-get update
インストールされているパッケージの更
新
apt-get upgrade
リポジトリ上のファイルを使用しパッ
ケージの更新
upgrade とことなり、新規のパッケー
ジの追加/不要なパッケージの削除も実
施
Linux のディストリビューションバー
ジョンも更新される
apt-get dist-upgrade
自動更新 「/etc/apt/apt.conf.d/20auto-upgrades」で設定されている
「/var/log/unattended-upgrades」にログが出力される
• Ubuntu 16.04: 自動アップデート / アップグレードの設定をする
https://www.hiroom2.com/2016/05/12/ubuntu-16-04%E3%81%A7%E8%87%AA%E5%8B%95%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%
BC%E3%83%88-%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%
82%92%E3%81%99%E3%82%8B/
「apt-xxxx」のsystemd ユニットで制御が行われている
(例 : 実行スクリプトについては、「apt-daily.service」実行タイミングの制御については「apt-daily.timer」で制御されている)
ベストプラクティス SQL
Server
on
Linux
Performance best practices and configuration guidelines for SQL Server 2017 on Linux•
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-performance-best-practices
SQL Server の設定
PROCESS AFFINITY の指定 ALTER SERVER CONFIGURATION
SET PROCESS AFFINITY NUMANODE = 0 TO <Max NUMA Node ID>
tempdb のデータファイルの分割 SQL Server on Linux は、インストール時の tempdb 分割が行われないため、インストール後に分割する
mssql-conf ツールを使用したメモリ設定 デフォルトでは SQL Server が使用するメモリは 80% に制限されているため、大容量のメモリを搭載している場合、
残りの 20% のサイズによっては、上限緩和を検討する (本設定は SQL Server の max server memroy とは別の設定)
Linux の設定
CPU CPU の電力制御のユーティリティ apt install -y cpufrequtils
cpufreq-info
CPU クロックのガバナー sudo cpupower frequency-info
sudo cpupower frequency-set -g performance
パフォーマンスと電源消費効率のバランス x86_energy_perf_policy -v 'performance'
CPU クロックの下限 tuned を使用して設定を実施
2.5. TUNED および KTUNE
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/power_management_guide/tuned
•
min_perf_pct=100
C-State C1 のみにする
How to set intel_idle.max_cstate=1
https://askubuntu.com/questions/749349/how-to-set-intel-idle-max-cstate-1
•
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1"
sudo update-grub
reboot
ディスク Read-Ahead のブロックサイズ blockdev --report
blockdev -v --setra 4096 /dev/sda
sysctl によるカーネルパラメーターの変更 設定の確認 cat /proc/sys/kernel/sched_min_granularity_ns
sudo sysctl -a
設定の変更 sudo sysctl -w kernel.sched_min_granularity_ns=10000000
sudo sysctl -w kernel.sched_wakeup_granularity_ns=15000000
sudo sysctl -w vm.dirty_ratio=40
sudo sysctl -w vm.dirty_background_ratio=10
sudo sysctl -w vm.swappiness=10
sudo sysctl -p
NUMA 複数 NUMA ノード環境での自動 NUMA バラン
シングの無効化
sudo sysctl -w kernel.numa_balancing=0
sudo sysctl -p
仮想アドレス空間 メモリマップ数の上限の変更
(65536 (64KB) -> 262144 (256KB))
sudo sysctl -w vm.max_map_count=262144
sudo sysctl -p
マウントオプション SQL Server のデータ/ログファイルのファイル
システムのマウントオプションの設定
(relatime -> noatime )
設定の確認 mount
または、
cat /proc/mounts
設定の変更 vi /etc/fstab
該当のボリュームに「noatime」オプションを追加する
3.9. RELATIME ドライブアクセス最適化
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/power_management_guide/relatime
•
※国内のブログの検証結果では、realtime / noattime の変更による明確な性能差は確認できないという情報が多い
Huge Page 透過的な Huge Page の有効化 ほとんどの Linux 環境では有効になっている。
How to disable Transparent Huge Pages (THP) in Ubuntu 16.04LTS
https://stackoverflow.com/questions/44800633/how-to-disable-transparent-huge-pages-thp-in-ubuntu-16-04lts
•
Red Hat Enterprise Linux 7 で transparent hugepages (THP) を無効にする
https://access.redhat.com/ja/node/1565043
•
Huge Page まとめ
https://gist.github.com/shino/5d9aac68e7ebf03d4962a4c07c503f7d
•
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/meminfo
Swap ファイル swap ファイルの適切な設定
Windows エンジニア向け SQL Server on Linux のためのスキルアップデート
2017年11月20日 8:05
SQL Server on Linux - 1 ページ
Swap ファイル swap ファイルの適切な設定
Ubuntu 16.10 その79 - スワップ領域をパーティションからファイルに移行させるには
https://kledgeb.blogspot.jp/2016/12/ubuntu-1610-79.html
•
swap ファイルの確認 swapon
仮想マシンでの実行時 動的メモリ割り当て (Dynamic Memory) を使
用しない
仮想マシンのメモリ割り当てとして、動的メモリ割り当てによる可変的なメモリ割り当てを実行しない
OOM Killer OOM Killer という動作が存在していることの認
識
メモリ/スワップの枯渇の可能性が出た場合に、メモリを消費しているプロセスを停止させる動作
Linux OOM Killerについて
https://qiita.com/konpyu/items/20d1989d1251d805cf3b
•
LinuxにおけるOOM発生時の挙動
https://qiita.com/satoru_takeuchi/items/792cb21b5d1b96300f99
•
メモリ不足時に大事なプロセスが OOM Killer に殺されないようにする
http://s.webry.info/sp/vogel.at.webry.info/201605/article_1.html
•
エラーログに対応する~OOM Killer編
https://thinkit.co.jp/article/736/1?page=0%2C1
•
OOM Killer – How To Create OOM Exclusions in Linux•
https://backdrift.org/oom-killer-how-to-create-oom-exclusions-in-linux
Linux - OOM Killer の発動を抑制!•
https://www.mk-mode.com/octopress/2016/03/15/linux-control-oomkiller/
inux/mm/oom_kill.c•
http://elixir.free-electrons.com/linux/v4.14.3/source/mm/oom_kill.c
9.6. システムのユニットファイルの作成および変更
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sect -managing_services_with_systemd-unit_files
•
OOM Killer に対しての考慮
swap ファイルのサイズを適切に設定•
mssql-conf で memory.memorylimitmb を適切に設定
OOM Killer の対象となりえる
プロセスの確認
apt install -y dstat
dstat --top-oom
スコアの確認 grep "" /proc/*/oom_score
ps -e | grep "sqlservr" | awk '{system("cat /proc/"$1"/oom_score")}'
OOM Killer の対象外にする echo "-17" > /proc/[pid]/oom_adj
ps -e | grep "sqlservr" | awk '{system("echo -17 > /proc/"$1"/oom_adj")}'
sudo echo '*/1 * * * * root ps -e | grep "sqlservr" | awk '''{system("echo -1000 > /proc/"$1"/oom_score_adj")}''' > /dev/null 2>&1' > /etc/cron.d/sqlservr_oom
または、
sudo echo '*/1 * * * * root ps -e | grep "sqlservr" | awk '''{system("echo -17 > /proc/"$1"/oom_adj")}''' > /dev/null 2>&1' > /etc/cron.d/sqlservr_oom
OOM Killer の設定の確認 sudo sysctl -r | grep "oom"
PASS Summit 2017 - SQL Server on Linux: DBA focused lessons learned from early deployments•
Inside SQL Server 2017 on Linux
https://onedrive.live.com/?authkey=%21ABg4T%5Fv1nZbdDbE&id=233BB03122CBD248%21249941&cid=233BB03122CBD248
•
SQL Server 2017 on Linux - Administration
SQL Server 2017 on Linux - Administration
•
How to safeguard SQL Server on Linux from OOM-Killer
https://blogs.msdn.microsoft.com/psssql/2017/10/17/how-to-safeguard-sql-server-on-linux-from-oom-killer/
•
Docker ローカルまたはリモートストレージ / コンテナーボリュームのマウントを検討•
Docker ボリュームストレージプラグインの活用•
Docker run の実行時に --cap-add sys_ptrace の活用•
事前の
IO 検証
FIO / dd / Iometer 等による事前のディスク性能の検証•
SQL Server on Linux では、ファイルの瞬時初期化はデフォルトで有効となっている•
マウントしたドライブを使用している場合「/etc/fstab」の「noattime」の設定の有効化•
SQL アカウント / グループ アカウント / グループともに mssql が使用されているため、バックアップや BULK INSERT をするファイルに対してこれらのアクセス権が必要となる
id mssql
uid=999(mssql) gid=999(mssql) groups=999(mssql)
コマンドラインから SQL Server を実行する場合、「sudo -u mssql /opt/mssql/bin/sqlservr」により起動する。
パフォーマンスツール PSSDiag https://blogs.msdn.microsoft.com/sqlcat/2017/08/11/collecting -performance-data-with-pssdiag-for-sql-server-on-linux/
https://github.com/Microsoft/DiagManager/tree/master/LinuxPSSDiag
sysstat https://github.com/sysstat/sysstat
プロセス構成
メインの PID で、SQL PAL Monitor が動作し、子プロセスで、SQL PAL / sqlservr.exe が動作している•
SQL Server のプロセス構成•
SQL Server Agent / Full Text Search をインストールした場合、sqlservr のプロセス内で動作することになるため、個別にサービスを停止することはできない•
ディレクトリ /opt/mssql バイナリ
/var/opt/mssql データ/ログ
Windows のディレクトリとの対応
Filesystem Hierarchy Standard
https://ja.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
•
Windows Linux
/
C:Users<ユーザー名> /home/<ユーザー名>
C:Windows /bin
/sbin
%WINDOWSTEMP% /tmp
C:Program Files /opt
/usr/bin
/usr/local
ライブラリ / ソースコード / バイナリ /usr
システムログ /var
コマンド Windows Linux
dir ls
cd cd
md mkdir
rd rmdir
del rm
echo echo
type cat
more more
copy cp
move mv
ren mv
find / findstr grep
tail
net start / net stop systemctl
イベントログ journalctl
/var/log/messages
attrib chmod / chown
ログ RHEL /var/log/messages
Ubuntu /var/log/syslog
SQL Server ログ /var/opt/mssql/log
SQL Server on Linux - 2 ページ
SQL Server ログ /var/opt/mssql/log
セットアップログ Debian Pakcage : /var/log/dpkg.log
RPM:/var/log/yum.log
オフラインインストール RHEL yumdownloader --downloadonly --resolve --destdir=/home/user/offlineistall mssql-server
Ubuntu apt-get download mssql-server
apt-cache depends mssql-server
GitHubサンプル https://github.com/denzilribeiro/sqlunattended
データディスクのマウント The systemd unit file for the SQL server should be locally extended by a dependency on the /datadir this will make sure the s tart is done after the mount and the unmount waits for the stop. The most generic option to do this would be
RequiresMountsFor=/datadir
I think it automatically depend on the installation path of the scripts already.
Note that you do not need to modify the systemd unit files in the library directory but you can amend them in the /etc/system d/system/<sqlserver>.service
systemdでmount完了を待ってサービスを起動する
https://qiita.com/ko-zu/items/3759144c53904afe6b76
•
systemctl show --no-pager mssql-server | grep "RequiresMountsFor"
mkdir /lib/systemd/system/mssql-server.service.d
vi /lib/systemd/system/mssql-server.service.d/mssql-server.conf
[Unit]
RequiresMountsFor=/mnt/backup
systemctl daemon-reload
systemctl show --no-pager mssql-server | grep "RequiresMountsFor"
システムデータベースの再構築 /opt/mssql/bin/sqlservr -c --setup --force-setup
システムデータベースの移動 tempdb / msdb / model : ALTER DATABASE で移動•
master : 移動することはできない•
パフォーマンスモニタリング コマンドライン
https://www.cyberciti.biz/tips/top-linux-monitoring-tools.html
http://www.brendangregg.com/linuxperf.html
モニタリング top [Linux] ある一定期間のtopコマンドの結果をファイルに出力する(備忘録)•
https://qiita.com/dkwnm/items/a147d30397676c9340ff
topコマンドの使い方•
貼り付け元 <https://qiita.com/k0kubun/items/7368c323d90f24a00c2f>
htop htopコマンドで覚えておきたい使い方11個•
https://orebibou.com/2016/05/htop%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%
E4%BD%BF%E3%81%84%E6%96%B911%E5%80%8B/
sar sar(sysstat)によるボトルネック特定
https://qiita.com/kidach1/items/07637a5baa0da7d52e6a
•
vmstat Vmstat の出力結果はどのように解釈すれば良いですか?•
https://access.redhat.com/ja/node/3054501
ディスク iostat iostat -x sda -c 2 -t > stats.log iostat how do I set up a logging•
https://serverfault.com/questions/227357/iostat-how-do-i-set-up-a-logging
iostat の await, svctm の 見かた、考え方(※10/30スライド修正)•
https://qiita.com/ora_gonsuke777/items/66212505bf9950b056a2
iostat コマンドの読み方•
https://blogs.oracle.com/yappri/iostat
df dfコマンドについてまとめました【Linuxコマンド集】•
https://eng-entrance.com/linux-command-df
lsblk
メモリ memstat Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)•
http://www.math.kobe-u.ac.jp/HOME/kodama/tips-free-memory.html
linuxにおけるメモリと関連コマンド(free, vmstat, top, sar)•
http://sisidovski.hatenablog.com/entry/2015/07/07/072150
Linux負荷監視コマンドまとめ•
https://qiita.com/aosho235/items/c4d6995743dd1dac16e1
sar sar(sysstat)によるボトルネック特定•
https://qiita.com/kidach1/items/07637a5baa0da7d52e6a
ネットワーク ifconfig / ip
netstat Linuxでプロセスが何のポート使っているかを調べる•
https://qiita.com/sonoshou/items/cc2b740147ba1b8da1f3
プロセス ps psコマンドについて詳しくまとめました 【Linuxコマンド集】
https://eng-entrance.com/linux-command-ps
•
モニタリングユーティリティ
Nagios
Collectd
Telegraf
Monitoring SQL on Linux https://blogs.msdn.microsoft.com/sqlcat/2017/07/03/how-the-sqlcat-customer-lab-is-monitoring-sql-on-linux/
https://github.com/Microsoft/mssql-monitoring
可用性 Pacemaker High Availability Add-On リファレンス•
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/
第1章 Pacemaker を使用した Red Hat High Availability クラスターの作成•
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/high_availability_add-on_administration/ch-startup-haaa>
第3章 pcs コマンドラインインターフェース
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/ch-pcscommand-haar
•
付録B pcs コマンドの使用例
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Configuring_the_Red_Hat_High_Availability_Add -On_with_Pacemaker/ap-configfile-HAAR.html
•
SQL Server on Linux - 3 ページ

More Related Content

What's hot

DBA から開発者への情報提供
DBA から開発者への情報提供DBA から開発者への情報提供
DBA から開発者への情報提供Masayuki Ozawa
 
SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)Tomoyuki Oota
 
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...Insight Technology, Inc.
 
SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門Tomoyuki Oota
 
Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果Masayuki Ozawa
 
Always on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントAlways on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントMasayuki Ozawa
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史Insight Technology, Inc.
 
SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)Tomoyuki Oota
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresMasayuki Ozawa
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシートMasayuki Ozawa
 
Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Masayuki Ozawa
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Oda Shinsuke
 
C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理Insight Technology, Inc.
 
Sql server data store data access internals
Sql server data store data access internalsSql server data store data access internals
Sql server data store data access internalsMasayuki Ozawa
 
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能Koichiro Sasaki
 
Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介Oda Shinsuke
 
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチMasayuki Ozawa
 
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用QlikPresalesJapan
 

What's hot (20)

DBA から開発者への情報提供
DBA から開発者への情報提供DBA から開発者への情報提供
DBA から開発者への情報提供
 
SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)
 
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
 
SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門
 
Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果
 
Always on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントAlways on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイント
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
 
SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
 
SQL Server 入門
SQL Server 入門SQL Server 入門
SQL Server 入門
 
Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版
 
C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理
 
Sql server data store data access internals
Sql server data store data access internalsSql server data store data access internals
Sql server data store data access internals
 
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
 
Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介
 
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
 
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
 
Sql server 運用 101
Sql server 運用 101Sql server 運用 101
Sql server 運用 101
 

Similar to Windows エンジニア向け sql server on linux のためのスキルアップデート

環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたSunao Tomita
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINE Corporation
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Microsoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみようMicrosoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみようNorio Sashizaki
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたGoAzure
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-publicAmazon Web Services Japan
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介Midori Oge
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Takamasa Maejima
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; OverviewOSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overviewirix_jp
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Takamasa Maejima
 

Similar to Windows エンジニア向け sql server on linux のためのスキルアップデート (20)

Monitoring あれこれ
Monitoring あれこれMonitoring あれこれ
Monitoring あれこれ
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Microsoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみようMicrosoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみよう
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
[Japan Tech summit 2017] DAL 001
[Japan Tech summit 2017]  DAL 001[Japan Tech summit 2017]  DAL 001
[Japan Tech summit 2017] DAL 001
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
[Japan Tech summit 2017] DAL 004
[Japan Tech summit 2017] DAL 004[Japan Tech summit 2017] DAL 004
[Japan Tech summit 2017] DAL 004
 
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; OverviewOSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overview
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 

More from Masayuki Ozawa

db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するMasayuki Ozawa
 
Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheetMasayuki Ozawa
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)Masayuki Ozawa
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモMasayuki Ozawa
 
ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得Masayuki Ozawa
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターMasayuki Ozawa
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料Masayuki Ozawa
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料Masayuki Ozawa
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tipsMasayuki Ozawa
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep diveMasayuki Ozawa
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイントMasayuki Ozawa
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたMasayuki Ozawa
 
Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Masayuki Ozawa
 
和牛をおいしく食べるには
和牛をおいしく食べるには和牛をおいしく食べるには
和牛をおいしく食べるにはMasayuki Ozawa
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようSql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようMasayuki Ozawa
 

More from Masayuki Ozawa (16)

db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
 
Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheet
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
 
ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep dive
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみた
 
Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介
 
和牛をおいしく食べるには
和牛をおいしく食べるには和牛をおいしく食べるには
和牛をおいしく食べるには
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようSql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
 

Windows エンジニア向け sql server on linux のためのスキルアップデート

  • 1. サービス管理 サービスの管理ファイル 実体は「/lib/systemd/system/mssql-server.service」である 「systemctl enable mssql-server.service」を実行することで、 「/etc/systemd/system/multi-user.target.wants/mssql-server.service」にシンボリックリンクが作成される 設定変更 Configure SQL Server on Linux with the mssql-conf tool https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf • 一部の設定は「mssql-conf」を使用して設定を変更 ファイアウォール Ubuntu ufwの基本操作 https://qiita.com/RyoMa_0923/items/681f86196997bea236f0 • ufw RHEL 4.5. ファイアウォールの使用 https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls • firewalld リモート接続 リモート管理 インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 https://qiita.com/tag1216/items/5d06bad7468f731f590e • ssh ファイルコピー SCP (1) http://euske.github.io/openssh-jman/scp.html • scp ソフトウェア更新 Ubuntu パッケージ情報 (リポジトリ情報) の更 新 apt-get update インストールされているパッケージの更 新 apt-get upgrade リポジトリ上のファイルを使用しパッ ケージの更新 upgrade とことなり、新規のパッケー ジの追加/不要なパッケージの削除も実 施 Linux のディストリビューションバー ジョンも更新される apt-get dist-upgrade 自動更新 「/etc/apt/apt.conf.d/20auto-upgrades」で設定されている 「/var/log/unattended-upgrades」にログが出力される • Ubuntu 16.04: 自動アップデート / アップグレードの設定をする https://www.hiroom2.com/2016/05/12/ubuntu-16-04%E3%81%A7%E8%87%AA%E5%8B%95%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83% BC%E3%83%88-%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%AE%E8%A8%AD%E5%AE%9A%E3% 82%92%E3%81%99%E3%82%8B/ 「apt-xxxx」のsystemd ユニットで制御が行われている (例 : 実行スクリプトについては、「apt-daily.service」実行タイミングの制御については「apt-daily.timer」で制御されている) ベストプラクティス SQL Server on Linux Performance best practices and configuration guidelines for SQL Server 2017 on Linux• https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-performance-best-practices SQL Server の設定 PROCESS AFFINITY の指定 ALTER SERVER CONFIGURATION SET PROCESS AFFINITY NUMANODE = 0 TO <Max NUMA Node ID> tempdb のデータファイルの分割 SQL Server on Linux は、インストール時の tempdb 分割が行われないため、インストール後に分割する mssql-conf ツールを使用したメモリ設定 デフォルトでは SQL Server が使用するメモリは 80% に制限されているため、大容量のメモリを搭載している場合、 残りの 20% のサイズによっては、上限緩和を検討する (本設定は SQL Server の max server memroy とは別の設定) Linux の設定 CPU CPU の電力制御のユーティリティ apt install -y cpufrequtils cpufreq-info CPU クロックのガバナー sudo cpupower frequency-info sudo cpupower frequency-set -g performance パフォーマンスと電源消費効率のバランス x86_energy_perf_policy -v 'performance' CPU クロックの下限 tuned を使用して設定を実施 2.5. TUNED および KTUNE https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/power_management_guide/tuned • min_perf_pct=100 C-State C1 のみにする How to set intel_idle.max_cstate=1 https://askubuntu.com/questions/749349/how-to-set-intel-idle-max-cstate-1 • sudo vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1" sudo update-grub reboot ディスク Read-Ahead のブロックサイズ blockdev --report blockdev -v --setra 4096 /dev/sda sysctl によるカーネルパラメーターの変更 設定の確認 cat /proc/sys/kernel/sched_min_granularity_ns sudo sysctl -a 設定の変更 sudo sysctl -w kernel.sched_min_granularity_ns=10000000 sudo sysctl -w kernel.sched_wakeup_granularity_ns=15000000 sudo sysctl -w vm.dirty_ratio=40 sudo sysctl -w vm.dirty_background_ratio=10 sudo sysctl -w vm.swappiness=10 sudo sysctl -p NUMA 複数 NUMA ノード環境での自動 NUMA バラン シングの無効化 sudo sysctl -w kernel.numa_balancing=0 sudo sysctl -p 仮想アドレス空間 メモリマップ数の上限の変更 (65536 (64KB) -> 262144 (256KB)) sudo sysctl -w vm.max_map_count=262144 sudo sysctl -p マウントオプション SQL Server のデータ/ログファイルのファイル システムのマウントオプションの設定 (relatime -> noatime ) 設定の確認 mount または、 cat /proc/mounts 設定の変更 vi /etc/fstab 該当のボリュームに「noatime」オプションを追加する 3.9. RELATIME ドライブアクセス最適化 https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/power_management_guide/relatime • ※国内のブログの検証結果では、realtime / noattime の変更による明確な性能差は確認できないという情報が多い Huge Page 透過的な Huge Page の有効化 ほとんどの Linux 環境では有効になっている。 How to disable Transparent Huge Pages (THP) in Ubuntu 16.04LTS https://stackoverflow.com/questions/44800633/how-to-disable-transparent-huge-pages-thp-in-ubuntu-16-04lts • Red Hat Enterprise Linux 7 で transparent hugepages (THP) を無効にする https://access.redhat.com/ja/node/1565043 • Huge Page まとめ https://gist.github.com/shino/5d9aac68e7ebf03d4962a4c07c503f7d • cat /sys/kernel/mm/transparent_hugepage/enabled cat /proc/meminfo Swap ファイル swap ファイルの適切な設定 Windows エンジニア向け SQL Server on Linux のためのスキルアップデート 2017年11月20日 8:05 SQL Server on Linux - 1 ページ
  • 2. Swap ファイル swap ファイルの適切な設定 Ubuntu 16.10 その79 - スワップ領域をパーティションからファイルに移行させるには https://kledgeb.blogspot.jp/2016/12/ubuntu-1610-79.html • swap ファイルの確認 swapon 仮想マシンでの実行時 動的メモリ割り当て (Dynamic Memory) を使 用しない 仮想マシンのメモリ割り当てとして、動的メモリ割り当てによる可変的なメモリ割り当てを実行しない OOM Killer OOM Killer という動作が存在していることの認 識 メモリ/スワップの枯渇の可能性が出た場合に、メモリを消費しているプロセスを停止させる動作 Linux OOM Killerについて https://qiita.com/konpyu/items/20d1989d1251d805cf3b • LinuxにおけるOOM発生時の挙動 https://qiita.com/satoru_takeuchi/items/792cb21b5d1b96300f99 • メモリ不足時に大事なプロセスが OOM Killer に殺されないようにする http://s.webry.info/sp/vogel.at.webry.info/201605/article_1.html • エラーログに対応する~OOM Killer編 https://thinkit.co.jp/article/736/1?page=0%2C1 • OOM Killer – How To Create OOM Exclusions in Linux• https://backdrift.org/oom-killer-how-to-create-oom-exclusions-in-linux Linux - OOM Killer の発動を抑制!• https://www.mk-mode.com/octopress/2016/03/15/linux-control-oomkiller/ inux/mm/oom_kill.c• http://elixir.free-electrons.com/linux/v4.14.3/source/mm/oom_kill.c 9.6. システムのユニットファイルの作成および変更 https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sect -managing_services_with_systemd-unit_files • OOM Killer に対しての考慮 swap ファイルのサイズを適切に設定• mssql-conf で memory.memorylimitmb を適切に設定 OOM Killer の対象となりえる プロセスの確認 apt install -y dstat dstat --top-oom スコアの確認 grep "" /proc/*/oom_score ps -e | grep "sqlservr" | awk '{system("cat /proc/"$1"/oom_score")}' OOM Killer の対象外にする echo "-17" > /proc/[pid]/oom_adj ps -e | grep "sqlservr" | awk '{system("echo -17 > /proc/"$1"/oom_adj")}' sudo echo '*/1 * * * * root ps -e | grep "sqlservr" | awk '''{system("echo -1000 > /proc/"$1"/oom_score_adj")}''' > /dev/null 2>&1' > /etc/cron.d/sqlservr_oom または、 sudo echo '*/1 * * * * root ps -e | grep "sqlservr" | awk '''{system("echo -17 > /proc/"$1"/oom_adj")}''' > /dev/null 2>&1' > /etc/cron.d/sqlservr_oom OOM Killer の設定の確認 sudo sysctl -r | grep "oom" PASS Summit 2017 - SQL Server on Linux: DBA focused lessons learned from early deployments• Inside SQL Server 2017 on Linux https://onedrive.live.com/?authkey=%21ABg4T%5Fv1nZbdDbE&id=233BB03122CBD248%21249941&cid=233BB03122CBD248 • SQL Server 2017 on Linux - Administration SQL Server 2017 on Linux - Administration • How to safeguard SQL Server on Linux from OOM-Killer https://blogs.msdn.microsoft.com/psssql/2017/10/17/how-to-safeguard-sql-server-on-linux-from-oom-killer/ • Docker ローカルまたはリモートストレージ / コンテナーボリュームのマウントを検討• Docker ボリュームストレージプラグインの活用• Docker run の実行時に --cap-add sys_ptrace の活用• 事前の IO 検証 FIO / dd / Iometer 等による事前のディスク性能の検証• SQL Server on Linux では、ファイルの瞬時初期化はデフォルトで有効となっている• マウントしたドライブを使用している場合「/etc/fstab」の「noattime」の設定の有効化• SQL アカウント / グループ アカウント / グループともに mssql が使用されているため、バックアップや BULK INSERT をするファイルに対してこれらのアクセス権が必要となる id mssql uid=999(mssql) gid=999(mssql) groups=999(mssql) コマンドラインから SQL Server を実行する場合、「sudo -u mssql /opt/mssql/bin/sqlservr」により起動する。 パフォーマンスツール PSSDiag https://blogs.msdn.microsoft.com/sqlcat/2017/08/11/collecting -performance-data-with-pssdiag-for-sql-server-on-linux/ https://github.com/Microsoft/DiagManager/tree/master/LinuxPSSDiag sysstat https://github.com/sysstat/sysstat プロセス構成 メインの PID で、SQL PAL Monitor が動作し、子プロセスで、SQL PAL / sqlservr.exe が動作している• SQL Server のプロセス構成• SQL Server Agent / Full Text Search をインストールした場合、sqlservr のプロセス内で動作することになるため、個別にサービスを停止することはできない• ディレクトリ /opt/mssql バイナリ /var/opt/mssql データ/ログ Windows のディレクトリとの対応 Filesystem Hierarchy Standard https://ja.wikipedia.org/wiki/Filesystem_Hierarchy_Standard • Windows Linux / C:Users<ユーザー名> /home/<ユーザー名> C:Windows /bin /sbin %WINDOWSTEMP% /tmp C:Program Files /opt /usr/bin /usr/local ライブラリ / ソースコード / バイナリ /usr システムログ /var コマンド Windows Linux dir ls cd cd md mkdir rd rmdir del rm echo echo type cat more more copy cp move mv ren mv find / findstr grep tail net start / net stop systemctl イベントログ journalctl /var/log/messages attrib chmod / chown ログ RHEL /var/log/messages Ubuntu /var/log/syslog SQL Server ログ /var/opt/mssql/log SQL Server on Linux - 2 ページ
  • 3. SQL Server ログ /var/opt/mssql/log セットアップログ Debian Pakcage : /var/log/dpkg.log RPM:/var/log/yum.log オフラインインストール RHEL yumdownloader --downloadonly --resolve --destdir=/home/user/offlineistall mssql-server Ubuntu apt-get download mssql-server apt-cache depends mssql-server GitHubサンプル https://github.com/denzilribeiro/sqlunattended データディスクのマウント The systemd unit file for the SQL server should be locally extended by a dependency on the /datadir this will make sure the s tart is done after the mount and the unmount waits for the stop. The most generic option to do this would be RequiresMountsFor=/datadir I think it automatically depend on the installation path of the scripts already. Note that you do not need to modify the systemd unit files in the library directory but you can amend them in the /etc/system d/system/<sqlserver>.service systemdでmount完了を待ってサービスを起動する https://qiita.com/ko-zu/items/3759144c53904afe6b76 • systemctl show --no-pager mssql-server | grep "RequiresMountsFor" mkdir /lib/systemd/system/mssql-server.service.d vi /lib/systemd/system/mssql-server.service.d/mssql-server.conf [Unit] RequiresMountsFor=/mnt/backup systemctl daemon-reload systemctl show --no-pager mssql-server | grep "RequiresMountsFor" システムデータベースの再構築 /opt/mssql/bin/sqlservr -c --setup --force-setup システムデータベースの移動 tempdb / msdb / model : ALTER DATABASE で移動• master : 移動することはできない• パフォーマンスモニタリング コマンドライン https://www.cyberciti.biz/tips/top-linux-monitoring-tools.html http://www.brendangregg.com/linuxperf.html モニタリング top [Linux] ある一定期間のtopコマンドの結果をファイルに出力する(備忘録)• https://qiita.com/dkwnm/items/a147d30397676c9340ff topコマンドの使い方• 貼り付け元 <https://qiita.com/k0kubun/items/7368c323d90f24a00c2f> htop htopコマンドで覚えておきたい使い方11個• https://orebibou.com/2016/05/htop%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84% E4%BD%BF%E3%81%84%E6%96%B911%E5%80%8B/ sar sar(sysstat)によるボトルネック特定 https://qiita.com/kidach1/items/07637a5baa0da7d52e6a • vmstat Vmstat の出力結果はどのように解釈すれば良いですか?• https://access.redhat.com/ja/node/3054501 ディスク iostat iostat -x sda -c 2 -t > stats.log iostat how do I set up a logging• https://serverfault.com/questions/227357/iostat-how-do-i-set-up-a-logging iostat の await, svctm の 見かた、考え方(※10/30スライド修正)• https://qiita.com/ora_gonsuke777/items/66212505bf9950b056a2 iostat コマンドの読み方• https://blogs.oracle.com/yappri/iostat df dfコマンドについてまとめました【Linuxコマンド集】• https://eng-entrance.com/linux-command-df lsblk メモリ memstat Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)• http://www.math.kobe-u.ac.jp/HOME/kodama/tips-free-memory.html linuxにおけるメモリと関連コマンド(free, vmstat, top, sar)• http://sisidovski.hatenablog.com/entry/2015/07/07/072150 Linux負荷監視コマンドまとめ• https://qiita.com/aosho235/items/c4d6995743dd1dac16e1 sar sar(sysstat)によるボトルネック特定• https://qiita.com/kidach1/items/07637a5baa0da7d52e6a ネットワーク ifconfig / ip netstat Linuxでプロセスが何のポート使っているかを調べる• https://qiita.com/sonoshou/items/cc2b740147ba1b8da1f3 プロセス ps psコマンドについて詳しくまとめました 【Linuxコマンド集】 https://eng-entrance.com/linux-command-ps • モニタリングユーティリティ Nagios Collectd Telegraf Monitoring SQL on Linux https://blogs.msdn.microsoft.com/sqlcat/2017/07/03/how-the-sqlcat-customer-lab-is-monitoring-sql-on-linux/ https://github.com/Microsoft/mssql-monitoring 可用性 Pacemaker High Availability Add-On リファレンス• https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/ 第1章 Pacemaker を使用した Red Hat High Availability クラスターの作成• https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/high_availability_add-on_administration/ch-startup-haaa> 第3章 pcs コマンドラインインターフェース https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/ch-pcscommand-haar • 付録B pcs コマンドの使用例 https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Configuring_the_Red_Hat_High_Availability_Add -On_with_Pacemaker/ap-configfile-HAAR.html • SQL Server on Linux - 3 ページ