低配置服务器/主机NGINX PHP MYSQL优化的一些配置

查看内存使用情况

free -m

详细的

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

一、Nginx配置
1、nginx运行的进程数,一般设置成和CPU的核数相同。

worker_processes 1

2、worker_rlimit_nofile是nginx能打开文件的最大句柄数。

worker_rlimit_nofile 40960;

3、nginx进程所允许的最大的连接数,max_clients = worker_processes * worker_connections。

worker_connections 10240;

4、设置连接超时时间为60。

keepalive_timeout 60;

5、该指令用于开启或关闭gzip模块(on/off)

gzip on;

6、设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。

gzip_min_length 1k;

7、设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。

gzip_buffers 4 16k;

8、识别http的协议版本(1.0/1.1)

gzip_http_version 1.1;

9、gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)

gzip_comp_level 2;

10、匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的。

gzip_types text/xml text/css text/javascript application/x-javascript application/xml;

11、和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩

gzip_vary on;

二、php-fpm配置
以下配置是在pm = dynamic模式下的配置。
1、php-fpm子进程副本创建的最大数,创建的越多并发能力越强。同时修改空闲时进程数pm.min_spare_serverspm.max_spare_servers,不能比pm.max_children大。

pm.max_children = 8;

2、接收多少次请求后重新建立php-fpm子进程。

pm.max_requests = 2000

dynamic这种模式很像apache的prefork方式。
3、设置php脚本最大执行时间。

request_terminate_timeout = 100

一个nginx进程要占5~10MB内存,一个php-fpm进程要占15~25MB左右的内存。

三、MariaDB配置优化
1、key_buffer 是优化性能的重要参数,用来缓存 tables keys 和 indexes,增加这个值可以更好的处理索引,读和写都需要索引。这里设设置成 256K 足够了

key_buffer = 16k

2、table_cache 是所有线程打开的表的数量,增加值可以增大 MySQL 的文件描述符数量,避免频繁的打开表,原始 my-small.cnf 中 table_cache 设置成4有点小,

一个 wordpress 的页面通常会涉及到10个左右的表,其他的程序比如 Drupal,MediaWiki 会涉及到更多,将table_cache改为8。

table_cache = 8

3、max_connections 是数据库最大的连接数量,可以根据自己博客/网站的访问量来定这个值。如果博客/网站经常出现:Too many connections 错误的信息说明需要增大 max_connections 的值。

max_connections = 16

4、hread_concurrency 是最大并发线程数,通常设置为 CPU核数量×2,在 VPS 宿主机上如果服务器有2颗物理 CPU,而每颗物理 CPU 又支持 H.T 超线程(一个处理器上整合了两个逻辑处理器单元),所以实际取值为4 × 2 = 8。

thread_concurrency = 2

5、对于博客/新闻网站来说,用得最多的就是查询,所以需要加入 query cache 的设置。query_cache_size 是执行查询所使用的缓冲大小。

query_cache_limit = 256K
query_cache_size = 4M

6、thread_stack 用来存放每个线程的标识信息,如线程 id,线程运行时环境等,可以通过设置 thread_stack 来决定给每个线程分配多大的内存。

thread_stack = 64K

7、sort_buffer_size是每个需要排序的线程分配的缓冲区大小,增加该值可以加速 order by 和 group by 的操作。注意:该参数是以每个连接分配内存,也就是说,如果有16个连接,sort_buffer_size为 64K,那么实际分配的内存为:16 × 64K = 1MB。如果设置的缓存大小无法满足需要,MySQL 会将数据写入磁盘来完成排序。因为磁盘操作和内存操作不在一个数量级,所以 sort_buffer_size对排序的性能影响很大。

sort_buffer_size = 256K

8、read_buffer_size 是顺序读取数据时的缓冲区大小,与 sort_buffer_size一样,该参数分配的内存也是以每连接为单位的。read_buffer_size 是用来当需要顺序读取数据的时候,如无发使用索引的情况下的全表扫描。全索引扫描等。在这种时候,MySQL 按照数据的存储顺序依次读取数据块,每次读取的数据快首先会暂存在 read_buffer_size中,当 buffer 空间被写满或者全部数据读取结束后,再将 buffer 中的数据返回给上层调用者,以提高效率。

read_buffer_size = 256K

9、read_rnd_buffer_size是随机读取数据时的缓冲区大小,与顺序读相对应。

read_rnd_buffer_size = 256K

10、net_buffer_size 用来存放客户端连接线程的连接信息和返回客户端的结果集的缓存大小。当 MySQL 接到请求后,产生返回结果集时,会在返回给请求线程之前暂存在在这个缓存中,等积累到一定大小的时候才开始向客户端发送,以提高网络效率。不过,net_buffer_size所设置的仅仅只是初始大小,MySQL 会根据实际需要自行申请更多的内存,但最大不会超过 max_allowed_packet

net_buffer_length = 2K

这些配置之前放置在my.cnf文件里面,在登录数据库的时候提示错误

所以将配置

innodb_buffer_pool_size=128M
key_buffer = 256k
table_cache = 8
max_connections = 16
thread_concurrency = 4
query_cache_limit = 256K
query_cache_size = 4M
thread_stack = 64K
sort_buffer_size = 256K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K

都存入my.cnf.d文件的[mysqld]后面重启mariadb就正常了,在my.cnf文件里有一句!includedir /etc/my.cnf.d写入mysql-clients.cnf文件也是不对的。

四、PHP配置优化
1、开启php gzip压缩。这里和nginx gzip压缩的东西不同,nginx是压缩html,css,javascript。php gzip是用来压缩php。

zlib.output_compression = On
zlib.output_compression_level = 5

2、修改php脚本使用的最大内存数。

memory_limit = 32M

以上文字来自:

https://www.sundabao.com/小内存vps-lamp配置优化/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 函数是支撑一门编程语言的重要内容,在JavaScript(下面简称js)中,函数有多种声明和调用方式,而且函数的位...
    justjs阅读 1,177评论 0 0
  • 对话式阅读,是基于对话式交互(Conversational UI)方式而衍生出来的阅读方式。这方面可以详见@刘英滕...
    Yang阳子阅读 5,142评论 6 17
  • Hi,手机边亲爱的你还好吗?又是我哇,难得不加班但还要熬夜写自我介绍的看门老大爷东东哇,哈哈哈哈哈哈。。。。没想到...
    东东_f942阅读 273评论 0 2