## 內核相關網絡參數(/etc/sysctl.conf)
## 增加連接數
1. net.core.somaxconn = 65535
2. net.core.netdev_max_backlog = 65535;
3. net.ipv4.tcp_max_syn_backlog = 65535;
## 加快TCP回收效率
```
net.ipv4.tcp_fin_timeout=10
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
```
## 緩沖區接受的默認值和最大值
```
net.core.wmem_default=87380
net.core.wmem_max=16777216
net.core.rmem_default=87380
net.core.rmem_max=16777216
```
## 失效連接所占用TCP系統資源,加快系統回收的效率
~~~
net.ipv4.tcp_keepalive_time=120
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_keepalive_probes=3
~~~
## 內存相關的參數
~~~xml
+ kernel.shmmax=4294967295
Linux 內核參數中最重要的參數之一,用于定義單個共享內存段的最大值。
> 注意:
1. 這個參數應該設置的足夠大,以便能在一個共享內存段下容納下整個
的Innodb緩沖池的大小。
2. 這個值的大小對于64位linux系統,可取的最大值為物理內存值-1byte,
建議值為大于物理內存的一半,一半取值大于Innodb 緩著沖池的大小即可,
可以去物理內存-1byte。
+ vm.swappiness=0
這個參數當內存不足時會對性能參數比較明顯的影響
Linux系統內存交換區:
在Linux系統安裝時都會有一個特殊的磁盤分區,稱之為系統交換分區。
使用 free -m 在系統中可以看到類似下面內容其中swap就是交換分區。
當操作系統因為沒有足夠內存時就會將一些<font color="red">虛擬內存
</font>寫到<font color="red">磁盤的交換區</font>中這樣就會發生
內存交換
在MySQL服務器上是否要使用交換分區有一些爭議:
在MySQL服務所在的Linux系統上完全禁用交換分區。
帶來的風險:
1. 降低操作系統的性能
2. 容易造成內存溢出、崩潰,或都被操作系統Kill掉
結論:
在MySQL服務器上保留交換區還是很必要的,但是要控制何時使用交換分區
vm.swappiness=0就是告訴Linux內核除非虛擬內存完全滿了,否則不要使用交換區。
~~~
## 增加資源限制(/etc/security/limit.conf)
~~~css
這個文件實際上是Linux PAM 也就是插入式認證模塊的配置文件。
打開文件數的限制。
* soft nofile 65535
* hard nofile 65535
加到limit.conf 文件末尾就可以了
* 表示對所有用戶有效
soft 指的是當前系統生效的設置
hard 表明系統中能設定的最大值
nofile 表示所限制的資源是打開文件的最大數目
65535 就是限制的數量
結論:
把可打開的文件數量增加到了65535個以保證可以打開足夠多的文件句柄。
注意:
這個文件的修改需要重啟系統才可以生效。
~~~
## 磁盤調度策略(/sys/block/devname/queue/scheduler)
~~~php
cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
noop(電梯式調度策略)
NOOP實現了一個FIFO隊列,它像電梯的工作方法一樣對I/O請求進行組織,當
有一個新的請求到來時,它將強求合并最近的請求之后,以此來保證請求同一
介質。NOOP傾向餓死讀而利于寫,因此NOOP對于閃存設備、RAM及嵌入式系統
是最好的選擇。
deadline(截止時間調度策略)
Deadline確保了再一個截止時間內服務請求,這個截止時間是可調整的,而
默認讀期限短語寫期限。這樣就防止了寫操作因為不能被讀取而餓死的現象,
Deadline對數據庫類應用是最好的選擇。
anticipatory(預料I/O調度策略)
本質上與Deadline一樣,但在最后一次讀操作后,要等6ms,才能繼續進行對
其它I/O請求進行調度。他會在每個6ms中插入行的I/O操作,而會將一些小寫
入流合并成一個大寫入流,用寫入延時換區最大的寫入吞吐量。AS適合于*寫
入較多的環境*,比如文件服務器,AS對數據庫環境表現很差。
~~~
- 實例和故事
- 大表
- 大事務
- 什么影響了MySQL性能
- 影響性能的幾個方面
- CPU資源和可用內存大小
- 磁盤的配置和選擇
- centos系統參數優化
- 文件系統對性能的影響
- MySQL體系結構
- 概述
- myisma
- innodb
- csv
- archive
- memory
- MySQL服務器參數
- 概述
- 內存配置相關參數
- IO相關參數配置
- 安全相關配置參數
- 其他常用配置參數
- 數據庫設計對性能的影響
- 總結
- MySQL基準測試
- 基準測試
- 如何進行基準測試
- 基準測試實例
- 基準測試工具之mysqlslap
- 基準測試工具之sysbench
- MySQL數據庫結構優化
- MySQL高可用架構設計
- 數據庫索引優化
- SQL查詢優化
- 數據庫的分庫分表
- 數據庫監控