国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Linux下優化Mysql的運行環境教程詳解

2024-07-24 12:35:11
字體:
來源:轉載
供稿:網友
  Mysql優化已經講過很多篇教程了,而且網上也很多相關內容,但是本文我們是講Linux下Mysql運行環境如何進行優化,有些地方與以往有所不同,也具有參考價值.
 
  一、修改Linux默認的IO調度算法.
 
  linux默認的IO調度算法為cfq,需要修改為dealine,如果是SSD或者PCIe-SSD設備,需要修改為noop,可以使用下面兩種修改方式。
 
  1、在線動態修改,重啟失效。
 
  echo “deadline” > /sys/block/sda/queue/scheduler
 
  tips:這里的sda代表你需要修改的硬盤,根據你實際情況修改。
 
  2、修改/etc/grub.conf,永久生效。
 
  修改/etc/grub.conf配置文件,在kernel那行增加一個配置,例如:
 
  kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=e01d6bb4-bd74-404f-855a-0f700fad4de0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun1
  6 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM elevator=deadline rhgb quiet
  主要關注elevator這個參數,設置內核的話需要重啟系統才能生效.
 
  最后可以通過 cat /sys/block/sda/queue/scheduler 觀察一下,修改前和修改后的區別.
 
  二、擴大文件描述符
 
  這個是經常修改的參數,高并發的程序都會修改.
 
  1、動態修改,重啟失效,只能使用root,并且當前session有效。
 
  ulimit -n 51200
 
  2、修改配置文件,永久生效.
 
  在/etc/security/limits.conf配置文件中增加一行.
 
  *        hard    nofile           51200
 
  擴大可開啟進程數 nprocess /etc/security/limits.conf
 
  在/etc/security/limits.conf配置文件中增加一行
 
  *        hard    nproc           51200
 
  最后修改/etc/pam.d/login文件添加:
 
  session required /lib64/security/pam_limits.so
 
  重啟系統以后使用 ulimit -a 命令查看是否生效.
 
  三、禁用numa特性
 
  新一代架構的NUMA不適合跑數據庫,它本意是為了提高內存利用率,但是實際效果不好,反而可能導致一CPU的內存尚有剩余,但是另外一個不夠用,發生swap的問題,因此建議關閉或者修改NUMA的調度機制。
 
  1、修改/etc/grub.conf關閉NUMA,重啟后生效.
 
  kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=e01d6bb4-bd74-404f-855a-0f700fad4de0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun1
  6 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM elevator=deadline numa=off rhgb quiet
  2、修改/etc/init.d/mysql或者mysqld_safe腳本,設置啟動mysqld進程時的NUMA調度機制,例如。
 
  新版的mysqld_safe腳本中自帶如下內容,所以不需要添加,你可以看看你的mysqld_safe腳本有沒有如下內容.
 
  if true && test $numa_interleave -eq 1
  then
  # Locate numactl, ensure it exists.
  if ! my_which numactl > /dev/null 2>&1
  then
  log_error “numactl command not found, required for –numa-interleave” --phpfensi.com
  exit 1
  # Attempt to run a command, ensure it works.
  elif ! numactl –interleave=all true
  then
  log_error “numactl failed, check if numactl is properly installed”
  fi  # Launch mysqld with numactl.
  cmd=”$cmd numactl –interleave=all”
  elif test $numa_interleave -eq 1
  then
  log_error “–numa-interleave is not supported on this platform”
  exit 1
  fi

  在Centos7之前,這個值建議設置為0,但是在新版本的內核里面,這樣設置可能導致OOM(內存溢出),然后kernel會殺掉使用內存最多的mysqld進程。
 
  所以現在這個值推薦設置為1,設置方法如下,在/etc/sysctl.conf文件中增加一行.
 
  vm.swappiness = 1
 
  # sysctl -p //運行這個命令,讓配置立刻生效。
 
  四、優化文件系統掛載參數
 
  首先關于使用什么文件系統,網上很多測試,煙花繚亂.大概的結論如下。
 
  xfs > ext3:xfs性能優于ext3
 
  ext4 > ext3:ext4性能優于ext3
 
  ext4 ??? xfs :xfs和ext4誰更優秀?我說不太準…..
 
  然后就是掛載文件系統使用的參數:
 
  defaults,noatime,nodiratime,barrier=0(在xfs上使用nobarrier)
 
  文件系統掛載參數是在/etc/fstab文件中修改,重啟時候生效。
 
  noatime表示不記錄訪問時間,nodiratime不記錄目錄的訪問時間。
 
  barrier=0,表示關閉barrier功能.barrier的主要目的是為了保證磁盤寫數據的安全性,但是會降低性能。如果有BBU之類的電池備份電源保證控制卡不瞬間掉電,那么這個功能就可以放心大膽的關閉。
 
  可以通過一下命令,查看配置是否生效.
 
  # cat /proc/mounts
  rootfs / rootfs rw 0 0
  proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
  sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
  devtmpfs /dev devtmpfs rw,seclabel,nosuid,relatime,size=8188388k,nr_inodes=2047097,mode=755 0 0
  devpts /dev/pts devpts rw,seclabel,relatime,gid=5,mode=620,ptmxmode=000 0 0
  tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev,relatime 0 0
  /dev/sda3 / ext4 rw,seclabel,relatime,noatime,nodiratime,barrier=0,data=ordered 0 0
  none /selinux selinuxfs rw,relatime 0 0
  devtmpfs /dev devtmpfs rw,seclabel,nosuid,relatime,size=8188388k,nr_inodes=2047097,mode=755 0 0
  /proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
  none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
  /dev/sda1 /boot ext4 rw,seclabel,noatime,nodiratime,barrier=0,data=ordered 0 0。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广昌县| 芦山县| 十堰市| 巴中市| 镇江市| 施秉县| 新密市| 合作市| 凉城县| 永平县| 册亨县| 宣威市| 外汇| 新野县| 罗城| 西宁市| 灵宝市| 苏尼特右旗| 南京市| 康定县| 奉新县| 轮台县| 平江县| 平罗县| 靖边县| 即墨市| 黔江区| 乐亭县| 新巴尔虎右旗| 扎囊县| 景德镇市| 邯郸县| 古丈县| 无锡市| 中阳县| 雷波县| 贺州市| 哈巴河县| 建平县| 长岭县| 哈巴河县|