不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2015-07-09 12:48  分类:系统设计/架构 

一般一个大规模Linux服务器请求数可能是几十万上百万的情况,需要足够的连接数来使用,所以务必进行相应的设置。

默认的Linux服务器文件描述符等打开最大是1024,用 ulimit -a 查看:

[viewuser@~]$ ulimit -a
core file size          (blocks, -c) 0   #coredump 文件大小
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 255622
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024   #打开文件数量,root账户无限制
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096   #root用户本项是无限
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

如果超过了连接数量,可以在 /var/log/message 里面看到类似:

May 14 16:13:52 hostname kernel: nf_conntrack: table full, dropping packet

的信息,基本可以判定是fd不够用引起的。(服务器受到攻击也会有这个信息)

作者:php-note.com  发布于:2014-06-27 13:18  分类:MySQL/NoSQL 

对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外。

这里给出方案

按照下面的设置试试看:

key_buffer_size= 3840M
max_allowed_packet = 16M
table_cache = 1024
sort_buffer_size = 32M
read_buffer_size = 32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 256M
thread_cache_size = 32
query_cache_size = 256M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

其中key_buffer_size 上限是 4G,不能再多了。

作者:php-note.com  发布于:2014-06-16 22:39  分类:MySQL/NoSQL 

对MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。下面我们介绍一些对性能影响较大的参数。 由于my.cnf文件的优化设置是与服务器硬件配置息息相关的,因而我们指定一个假想的服务器硬件环境:CPU: 2颗Intel Xeon 2.4GHz 内存: 4GB DDR 硬盘: SCSI 73GB(很常见的2U服务器)