性能调优攻略|系统调优

性能调优攻略|系统调优,第1张

概述介绍《性能调优攻略系统调优》开发教程,希望对您有用。

《性能调优攻略|系统调优》要点:
本文介绍了性能调优攻略|系统调优,希望对您有用。如果有疑问,可以联系我们。

1/ I/O 模型

我们都知道,Unix/linux 下把所有的设备都当成文件来进行 I/O,所以大部分 *** 作都是 I/O 相关的系统调用.主要的 I/O 方式如下:

同步阻塞式 I/O;

同步无阻塞式;

I/O 异步;

AIO 方式.这种 I/O 模型是一种处理与I/O 并行的模型.I/O 哀求会立即返回,说明哀求已经成功发起.

AIO 方式因为没有任务的阻塞,无论是 I/O,还是事件通知上,都可以充分利用 cpu,比起同步无阻塞好处就是不需要轮询.

Nignx 的高效,就是通过使用 epoll 的 AIO 方式来进行 I/O 的.

2/ 多核cpu 调优

关于 cpu 的多核技术,我们知道,cpu0是很关键,如果0号 cpu 利用率比较高,则性能下降比较利害,因为 cpu0具有调整功能,所以,不能任由 *** 作系统负载均衡.通过手动分配 cpu 核,让其不过多占用 cpu0,或者通过分离关键进程和非关键进程各占其核.

多核cpu 还有一个技术叫 NUMA 技术(Non-Uniform Memory Access).传统的多核运算是使用 SMP(Symmetric Multi-Processor)模型,多个处理器共享一个集中的存储器和I/O 总线.因此才会有一致存储器拜访的问题,一致性意味着性能问题.

在 linux 下,对 NUMA 调优的命令是:numactl.如下面的命令:(指定命令“program arg1 arg2”运行在node 0 上,其内存分配在node 0 和 1上)

numactl --cpubind=0 --membind=0,1 program arg1 arg2

上面这个命令并不好,因为内存跨越了两个node,这非常不好.最好的方式是只让程序拜访和自己运行一样的node,如:

numactl --membind 1 --cpunodebind 1 --localalloc application

3/ 文件系统调优

关于文件系统,因为文件系统也是有 cache 的,为了文件系统有最大的性能.首要的事情就是分配足够大的内存,这个非常关键,在 linux 下可以使用 free 命令来查看 free/used/buffers/cached,总的来说,buffers 和 cached 应该有40%左右.目前速度比较快还 Intel SSD 固态硬盘,但是写次数有限.

对于文件系统调优,是通过修改配置,对于 linux 的 Ext3/4来说,几乎在所胡情况下都有所帮助的一个参数是关闭文件系统拜访时间,在/etc/fstab 下可以看文件系统有没有 noatime 参数,还有一个是 dealloc,它可以让系统在最后时刻决定写入文件发生时使用哪个块,可优化这个写入程序.

对于日志模式:joumal、ordered、writeback.默认设置 data=ordered 提供性能和防护之间的最佳平衡.对于 Ext4默认设置基本上是最佳优化了.

在 linux 下查看 I/O 的使用——iotop,可以帮助你查看各个进程的磁盘读写负载情况.

4/ 总结

真正提高 I/O 性能方式是把和外设 I/O 的次数降到最低,最好没有.通常对于读来说,内存 cache 可以从质上提升性能,因为内存比外设快太多.对于写来说,cache 主要写的数据,少写几次,但是 cache 带来的问题就是实时性的问题,也就是 Latency 会变大.我们就需要在写的次数上做相应平衡.

谢谢!大家读完此文,欢迎大家留言讨论系统调优过程中还有哪些办理方案.

《性能调优攻略|系统调优》是否对您有启发,欢迎查看更多与《性能调优攻略|系统调优》相关教程,学精学透。内存溢出PHP学院为您提供精彩教程。

总结

以上是内存溢出为你收集整理的性能调优攻略|系统调优全部内容,希望文章能够帮你解决性能调优攻略|系统调优所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1157119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存