必赢亚洲手机app下载


星与杰的不期而遇

必赢亚洲手机app浅谈多点触控

Linux系统层面调优

MySQL
一般运营于Linux系统中。对于MySQL的调优一般分为Linux操作系统层面包车型客车调优和MySQL层面包车型客车调优(当然还有架构层面、业务规模、应用程序层面的调优)。操作系统重固然管理和分红硬件财富,所以其实系统层面包车型地铁调优包含了硬件的调优,也正是调动硬件参数。Linux系统层面包车型地铁调优一般分为
CPU的调优、内部存款和储蓄器的调优、磁盘的调优、互联网的调优、Linux后台service调优等等。

1. CPU 调优

1.1 CPU 的勤政廉洁勤政形式

在server环境的CPU一定要关张节约能源格局,节约能源情势不适应于服务器环境。因为他会活动给CPU降频进入休眠情势!一般台式机电脑,手提式有线电电话机为了续航时间,才需求。关闭CPU的勤苦形式有两种办法:

1)在BIOS中开展设置,彻底关闭;

2)关闭Linux中的服务 cpuspeed 和 irqbalance;

[root@localhost ~]# chkconfig --level 35 cpuspeed off
[root@localhost ~]# chkconfig | grep cpuspeed
cpuspeed        0:off   1:on    2:off   3:off   4:off   5:off   6:off
[root@localhost ~]# chkconfig --level 35 irqbalance off
[root@localhost ~]# chkconfig | grep irqbalance
irqbalance      0:off   1:off   2:off   3:off   4:off   5:off   6:off

cpuspeed
便是承担CPU节约财富的后台服务;而irqbalance在cpuspeed将有个别或某多少个CPU调节进入休眠格局时,它肩负将中止发送到没有休眠的CPU。关闭irqbalance会将持有中断均衡的发送到全数cpu.

1.2 关闭CPU的numa

numa的会造成mysqld爆发swap,严重影响属性。因为numa架构的CPU和内部存款和储蓄器是bind的,假若CPU本身node中的内部存款和储蓄器不够,就会促成swap的发生,固然此时其他node中有雅量的空余内部存款和储蓄器,它也不会去行使。那正是numa的3个缺点。有各种主意关闭CPU的numa:

1)在BISO中实行安排;

2)numactl –interleave=all

[root@localhost ~]# numactl --interleave=all

interleave=all 其实是将NUMA架构的依次node中的内部存款和储蓄器,又重新虚拟成了二个共享的内部存款和储蓄器来进展分红,不过和SMP差其余是,因为每多少个node之间有
inter-connect
,所以又幸免了SMP架构总线争用的短处。

翻看CPU是不是被休眠导致降频:

[root@localhost ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
stepping        : 10
cpu MHz         : 1995.288

 看上面包车型大巴 cpu MHz : 一九九二.288 和 实际是还是不是一律。

现实参见:http://www.cnblogs.com/digdeep/p/4847484.html

2. 内部存款和储蓄器的调优

内部存储器首如果要防范爆发swap。因为发生swap的话,从内存访问间接下降为硬盘访问,随机走访的进程下降10的5回方倍,也便是10万倍。顺序访问降低10倍左右。

2.1 幸免产生swap:

1)关闭CPU的numa,防止numa导致的swap;

2)设置 vm.swappiness=1; 在 /etc/sysctl.conf
中加上:vm.swappiness=1,然后 sysctl -p; 也可以sysctl vm.swappiness=1如今改动,然后sysctl -p

    注意:在科雷傲HEL/CentOS
6.4及创新的内核中 vm.swappiness = 0
的暗中认可行为被修改了,假如继续设置vm.swappiness = 0,

           
有大概导致系统内部存款和储蓄器溢出,从而造成MySQL被意外kill掉。所以那边我们设置为 1
而不是观念的 0.

3)设置 /proc/$(pidof -s
mysqld)/oom_adj为较小的值(-15,-16依然-17)来尽量防止MySQL由于内部存款和储蓄器不足而被关闭

[root@localhost ~]# echo -17 > /proc/$(pidof mysqld)/oom_adj
[root@localhost ~]# cat /proc/$(pidof mysqld)/oom_adj
-17

这个oom_adj中的变量的限制为15到-16以内。越大越不难在内部存储器不足时被kill。-17
则象征该进程不会被kill掉,当内部存款和储蓄器不足时,会kill别的进度。

4)使用 hugepage 可避防止swap out; 但是 huagepage也是有代价的(导致page争用加剧)。

2.2 在BIOS 设置内部存款和储蓄器为最大质量情势;

2.3 调节 disk cache 刷新到磁盘的表现

因为Linux私下认可会大批量的进展文件cache,也便是将大气内存用于disk
cache。那样的话,会潜移默化mysql使用内部存款和储蓄器。所以我们能够调剂disk
cache在脏块达到多大的比重时,举行刷新。vm.dirty_background_ratio=10;
默许值为10,表示disk
cache中的脏页数量达到百分之十时,pdflush内核线程会被调用,异步刷新disk cache; vm.dirty_ratio=20; 表示disk
cache中的脏页数量达到十分之二时,会进展同步的disk
cache刷新,从而会堵塞系统中采取过程的IO操作!我们得以调低vm.dirty_background_ratio来下落disk
cache对mysql使用内部存款和储蓄器的熏陶,可是大概会扩张磁盘IO,因为文件cache收缩了,扩张其余进度的page
fault;(vm.dirty_background_ratio / vm.dity_ratio
带有backround表示异步刷新,没有带的是一起刷新。)

切实参见:http://www.cnblogs.com/digdeep/p/4850460.html

3. 磁盘IO的调优

磁盘IO的调优涉及到文件系统的调优和磁盘的调优。

3.1 文件系统的调优

1)文件系统的取舍:在rhel6.4此前ext4品质比xfs好,因为xfs有lock争用的bug。不过6.4始发,xfs的bug被fix了。测试证明xfs质量比ext4好。

2)文件挂载选项:文件挂载时启用noatime,nodiratime,能够在 /etc/fstab
中开始展览修改。man mount 手册中有连锁选项的表明。

4)文件挂载选项:barrier/nobarrier(假诺有电池维护,能够启用nobarrier选项来提供质量)

     If your disks are battery-backed in one way or another,  disabling
barriers may safely improve performance. The mount options

    “barrier” and “nobarrier” can also be used to enable or disable
barriers, for consistency with other ext4 mount options.

5)文件挂载选项:data={journal|ordered|writeback},如若有电池维护,启用
data=writeback大概会提高品质。

     journal:All data is committed into the journal prior to being
written into the main filesystem.
     ordered:This  is  the default
mode.  All data is forced directly out to the main file system
prior to its meta-data being committed

                   to the journal.
   writeback: Data ordering is not
preserved – data may be
written into the main filesystem after its metadata has been committed
to

                   the
journal. This is rumoured to be the highest-throughput option. It
guarantees internal filesystem integrity, however

                   it can allow old data to appear in files after a
crash and journal recovery.

6)XFS挂载选项:inode64,假如选用的是XFS文件系统,并且1个分区体积超越1T时,需求选用inode64选项挂载,否则大概会错误的报”disk
full”

   
参见:http://imysql.cn/2013/02/21/using-xfs-with-large-partition-for-backup.html

切实参见:http://www.cnblogs.com/digdeep/p/4857987.html

3.2 磁盘的调优

1)IO调度算法:mysql服务器毫无疑问不要选择私下认可的CFQ调度算法。要是是SSD,那么相应选择NOOP调度算法,纵然是磁盘,就活该利用Deadline调度算

修章:

[root@localhost ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
[root@localhost ~]# echo noop >  /sys/block/sda/queue/scheduler
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq

那是一时改动,重启失效。永久修改,须要修改文件 /boot/grub/menu.lst
中的elevator=deadline 恐怕noop:

# vi /boot/grub/menu.lst
kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet

2)加大内部存款和储蓄器,能够使mysql缓存更大的剧情,减弱IO操作。

3)磁盘RAID10 或者 换SSD;

4)适当的选取Nosql(redis/mongdb/ssdb)等减轻mysql的承受;也足以架构master-slave减轻master的IO压力。

5)使用memcache只怕reids在mysql前边加一层缓存,减轻磁盘IO;

6)有阵列卡时,设置阵列写策略为WB,甚至FO锐界CE
WB(若有双电爱抚,或对数码安全性供给不是专门高的话)

实际参见:http://www.cnblogs.com/digdeep/p/4863502.html

4. 互连网调优

网络调优先分配为硬件层面和TCP/IP软件层面参数的调优。

4.1 网络硬件调优:

1)换延迟更小,throught更大的网卡;

2)双网卡绑定,进行负荷均衡和高可用;

4.2 TCP/IP参数调优:

必赢亚洲手机app,1)socket buffer 参数调节:

1>/proc/sys/net/ipv4/tcp_mem
TCP全局缓存,单位为内部存款和储蓄器页(4k);

对应的木本参数:net.ipv4.tcp_mem ,能够在 /etc/sysctl.conf 中开始展览修改;

2>/proc/sys/net/ipv4/tcp_rmem
接收buffer,单位为字节

对应的基业参数:net.ipv4.tcp_rmem, 能够在 /etc/sysctl.conf 中开始展览修改;

3>/proc/sys/net/ipv4/tcp_wmem
接收buffer,单位为字节

对应的基础参数:net.ipv4.tcp_wmem, 能够在 /etc/sysctl.conf 中开始展览修改;

4>/proc/sys/net/core/rmem_default
接收buffer默许大小,单位字节

对应内核参数:net.core.rmem_default, 能够在 /etc/sysctl.conf
中开始展览修改;

5>/proc/sys/net/core/rmem_max
接收buffer最大尺寸,单位字节

对应内核参数:net.core.rmem_max, 能够在 /etc/sysctl.conf 中开始展览修改;

6>/proc/sys/net/core/wmem_default
发送buffer暗中同意大小,单位字节

对应内核参数:net.core.rmem_default, 能够在 /etc/sysctl.conf
中开始展览修改;

7>/proc/sys/net/core/wmem_max
发送buffer最大尺寸,单位字节

对应内核参数:net.core.rmem_max, 能够在 /etc/sysctl.conf 中开始展览改动;

2)offload配置

将tso,checksum等成效交由网卡硬件来成功:

ethtool -K eth0 rx on|off

ethtool -K eth0 tx on|off

ethtool -K eth0 tso on|off

3)调大网卡的接收队列和出殡和埋葬队列:

1>接收队列:/proc/sys/net/core/netdev_max_backlog
对应内核参数:net.core.netdev_max_backlog

2>发送队列:

查看大小:ifconfig eth0 | grep
txqueue

修改尺寸:ifconfig eth0 txqueuelen
30000

4)调大 SYN 半连接 tcp_max_syn_backlog
数量

sysctl -w net.ipv4.tcp_max_syn_backlog=4096

也能够在/etc/sysctl.conf文件中布局。

5)net.core.somaxconn

该参数为完结一回握手,已经创建了接二连三,等待被accept下一场开始展览拍卖的数目。暗中同意为128,大家能够调整到
65535,甚至更大。也正是尅有容纳越来越多的等候处理的连接。

MTU 大小 调优

设若TCP连接的两端的网卡和网络接口层都协理大的
MTU,那么大家就能够配备网络,使用更大的mtu大小,也不会招致被
切割重新组建发送。

配备命令:ifconfig eth0 mtu 柒仟 up

6)TCP连接的 CLOSE_WAIT 和 TIME_WAIT

如果TCP连接的 CLOSE_WAIT 和 TIME_WAIT
状态过多时,分别须要调优TCP的keepalive相关的参数和TCP的回收连锁的参数。

TCP/IP的调优极其错综复杂,具体参见博文:http://www.cnblogs.com/digdeep/p/4869010.html

5. Linux
种类中的各个后台daemon的调优

Linux系统中留存各样各种的后台daemon,也正是各类service,对于mysql服务器来说广大没有须要的service就能够通通过海关闭掉。

mysql的最小化的后台服务,能够唯有:crond,sshd,rsyslog,network,sysstat

自然若是有亟待能够在大增其他服务。

使用
chkconfig –level 35 servicename off;
能够举办倒闭。35代表在runlevel的level =3 和 level
=5级别实行倒闭。

deamon的调优能够参考:http://wubx.net/category/optimize/

6. ulimit
能源限制的调优

ulimit provides control over the resources available to the shell and to processes started by it, on systems
that allow such control.

The soft limit is the value that the kernel enforces for the
corresponding resource. The hard limit acts as a ceiling for the soft
limit.

ulimit命令能够决定 shell 能够取得的能源的限量,同时也控制在 shell
中运转的经过能够获得的能源的限定。分为 soft limit 和 hard limit.

ulimit 的手册:

必赢亚洲手机app 1必赢亚洲手机app 2

User limits - limit the use of system-wide resources.

Syntax
      ulimit [-acdfHlmnpsStuv] [limit]

Options

   -S   Change and report the soft limit associated with a resource. 
   -H   Change and report the hard limit associated with a resource. 

   -a   All current limits are reported. 
   -c   The maximum size of core files created. 
   -d   The maximum size of a process's data segment. 
   -f   The maximum size of files created by the shell(default option) 
   -l   The maximum size that can be locked into memory. 
   -m   The maximum resident set size. 
   -n   The maximum number of open file descriptors. 
   -p   The pipe buffer size. 
   -s   The maximum stack size. 
   -t   The maximum amount of cpu time in seconds. 
   -u   The maximum number of processes available to a single user. 
   -v   The maximum amount of virtual memory available to the process. 

ulimit provides control over the resources available to the shell and to processes started by it, on systems that allow such control.

The soft limit is the value that the kernel enforces for the corresponding resource. The hard limit acts as a ceiling for the soft limit.

An unprivileged process may only set its soft limit to a value in the range from 0 up to the hard limit, and (irreversibly) lower its hard limit. A privileged process can make arbitrary changes to either limit value.

If limit is given, it is the new value of the specified resource. Otherwise, the current value of the soft limit for the specified resource is printed, unless the `-H' option is supplied.

When setting new limits, if neither `-H' nor `-S' is supplied, both the hard and soft limits are set.

Restricting per user processes ( -u) can be useful for limiting the potential effects of a fork bomb.

Values are in 1024-byte increments, except for `-t', which is in seconds, `-p', which is in units of 512-byte blocks, and `-n' and `-u', which are unscaled values.

The return status is zero unless an invalid option is supplied, a non-numeric argument other than unlimited is supplied as a limit, or an error occurs while setting a new limit.

ulimit is a bash built in command.

ulimit

查看方今的富有的限制:

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7908
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7908
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

相似而言,大家很不难在 open files
上被限制,从而报错。我们得以暂且改动和祖祖辈辈修改:

ulimit -n 8192

永远修改,须要修改文件 /etc/security/limits.conf, 加上:

* soft nofile 10240
* hard nofile 20480

修改今后,还亟需在 vi /etc/pam.d/login
最终加上一行:

session required pam_limits.so

7. 总结:

Linux系统和硬件的调优,除了某些通用的调优之外。其他比如TCP/IP的调优,我们率先是要运用有关的各样吩咐查清楚瓶颈在何地,然后才好因材施教。

 

参考:

http://mp.weixin.qq.com/s?\_\_biz=MjM5NzAzMTY4NQ==&mid=207641943&idx=1&sn=d124286ea8811950be5a872d57a27357

http://wubx.net/category/optimize/

http://imysql.cn/2015/05/24/mysql-optimization-reference-1.shtml

http://imysql.cn/2013/02/21/using-xfs-with-large-partition-for-backup.html

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图