阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

20个Linux服务器性能调优技巧

82次阅读
没有评论

共计 4770 个字符,预计需要花费 12 分钟才能阅读完成。

导读 Linux 是一种开源操作系统,它支持各种硬件平台,Linux 服务器全球知名,它和 Windows 之间最主要的差异在于,Linux 服务器默认情况下一般不提供 GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的。

20 个 Linux 服务器性能调优技巧

Linux 高可用服务器集群解决方案让 IT 系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级。Linux 服务器有各种用途,如 Web 服务器或分支机构内部服务器,CMS 或 CRS 服务器,文件服务器(为 Windows 和 / 或 Linux 用户服务),VoIP 电话服务器,邮件或域名服务器,数据库服务器,云计算配置中的基础设施节点等。

Linux 功能丰富、强大、灵活,你可以用它完成各种任务,在这篇文章中,我们将讨论一些提高 Linux 服务器性能的技巧。

1、为磁盘 I / O 调整 Linux 内核电梯算法

在选择文件系统后,有一些内核和挂载选项可能会影响到它的性能表现,其中一个内核设置是电梯算法,通过调整电梯算法,系统可以平衡低延迟需求,收集足够的数据,以有效地组织对磁盘的读和写请求。

2、禁用不必要的守护进程,节省内存和 CPU 资源

每台服务器上都运行着许多守护进程或服务,而具有讽刺意味的是,有很多通常不是必需的,这些服务没有发挥作用,但却消耗了宝贵的内存和 CPU 时间。此外,它们可能将服务器置于危险境地,多运行一个服务就等于多向黑客打开一扇长驱直入的门,因此,你应该将它们从服务器移除,禁用它们最大的好处是可以加快启动时间,释放内存。另外,你可以减少 CPU 需要处理的进程数,禁用它们的另一个好处是增强服务器的安全性,因为越少的守护进程意味着可被攻击和利用的漏洞越少。

下面是一些应该被禁用的 Linux 守护进程,默认情况下,它们都是自动运行的:

 序号  守护进程  描述
 1  Apmd  高级电源管理守护进程
 2 Nfslock 用于 NFS 文件锁定
 3 Isdn ISDN Moderm支持
 4 Autofs 在后台自动挂载文件系统(如自动挂载 CD-ROM)
 5 Sendmail 邮件传输代理
 6 Xfs X Window 的字体服务器
3、关掉 GUI

一般说来,Linux 服务器是不需要 GUI 的,所有管理任务都可以在命令行下完成,因此最好关掉 GUI,重定向 X 显示或通过一个 Web 浏览器界面显示。为了禁用 GUI,“init level(启动级别)”应该被设置为 3(命令行登录),而不是 5(图形登录),如果需要 GUI,可以随时运行 startx 进入图形用户界面。

4、清理不需要的模块或功能

在服务器软件包中有太多被启动的功能或模块实际上是不需要的(如 Apache 中的许多功能模块),仔细查看 Apache 配置文件,确定 FrontPage 支持或其它额外的模块是否真的要用到,如果不需要,应该毫不犹豫地从服务器禁用掉,这样有助于提高系统内存可用量,腾出更多资源给那些真正需要的软件,让它们运行得更快。

5、禁用控制面板

在 Linux 中,有许多流行的控制面板,如 Cpanel,Plesk,Webmin 和 phpMyAdmin 等,相信每个 Linux 初级用户都很喜欢这些控制面板,但是,禁用掉这些软件包可以释放出大约 120MB 内存,因此,我强烈建议禁用掉这些控制面板,除非它们真的需要用到,它们可以通过 PHP 脚本(尽管有些不安全),或命令行命令启用,这样做后,内存使用量大约可以下降 30-40%。

6、改善 Linux Exim 服务器性能

有许多种方法改善服务器的 Exim 性能,其中一个办法是使用 DNS 缓存守护进程,它可以降低解析 DNS 记录需要的带宽和 CPU 时间,DNS 缓存通过消除每次都从根节点开始查找 DNS 记录的需求,从而改善网络性能,Djbdns 是一个非常强大的 DNS 服务器,它具有 DNS 缓存功能,Djbdns 比 BIND DNS 服务器更安全,性能更好,可以直接通过 http://cr.yp.to/ 下载,或通过 Red Hat 提供的软件包获得。

7、使用 AES256 增强 gpg 文件加密安全

为了提高备份文件或敏感信息的安全,许多 Linux 系统管理员都会使用 gpg 进行加密,在使用 gpg 时,最好指定 gpg 使用 AES256 加密算法,AES256 使用 256 位密钥,它是一个开放的加密算法,美国国家安全局 (NSA) 都使用它保护绝密信息,没有什么比它更安全的了。

8、远程备份服务安全

安全是选择远程备份服务最重要的因素,大多数系统管理员都害怕两件事:(黑客)可以删除备份文件,不能从备份恢复系统。

为了保证备份文件 100% 的安全,备份服务公司提供远程备份服务器,使用 scp 脚本或 RSYNC 通过 SSH 传输数据,这样,没有人可以直接进入和访问远程系统,因此,也没有人可以从备份服务删除数据。在选择远程备份服务提供商时,最好从多个方面了解其服务强壮性,如果可以,可以亲自测试一下。

9、更新默认内核参数设置

为了顺利和成功运行企业应用程序,如数据库服务器,可能需要更新一些默认的内核参数设置,例如,2.4.x 系列内核消息队列参数 msgmni 有一个默认值(例如,共享内存,或 shmmax 在 Red Hat 系统上默认只有 33554432 字节),它只允许有限的数据库并发连接,下面为数据库服务器更好地运行提供了一些建议值(来自 IBM DB2 支持网站):

kernel.shmmax=268435456 (32 位) kernel.shmmax=1073741824 (64 位) kernel.msgmni=1024 fs.file-max=8192 kernel.sem=”250 32000 32 1024″

10、优化 TCP

优化 TCP 协议有助于提高网络吞吐量,跨广域网的通信使用的带宽越大,延迟时间越长时,建议使用越大的 TCP Linux 大小,以提高数据传输速率,TCP Linux 大小决定了发送主机在没有收到数据传输确认时,可以向接收主机发送多少数据。

11、选择正确的文件系统

使用 ext4 文件系统取代 ext3

● Ext4 是 ext3 文件系统的增强版,扩展了存储限制

●它具有日志功能,保证高水平的数据完整性(在非正常关闭事件中)

●在非正常关闭和重启时,它不需要检查磁盘(这是一个非常耗时的动作)

●更快的写入速度,ext4 日志优化了硬盘磁头动作

12、使用 noatime 文件系统挂载选项

在文件系统启动配置文件 fstab 中使用 noatime 选项,如果使用了外部存储,这个挂载选项可以有效改善性能。

13、调整 Linux 文件描述符限制

Linux 限制了任何进程可以打开的文件描述符数量,默认限制是每进程 1024,这些限制可能会阻碍基准测试客户端 (如 httperf 和 apachebench) 和 Web 服务器本身获得最佳性能,Apache 每个连接使用一个进程,因此不会受到影响,但单进程 Web 服务器,如 Zeus 是每连接使用一个文件描述符,因此很容易受默认限制的影响。

打开文件限制是一个可以用 ulimit 命令调整的限制,ulimit -aS 命令显示当前的限制,ulimit -aH 命令显示硬限制(在未调整 /proc 中的内核参数前,你不能增加限制)。

Linux 第三方应用程序性能技巧

对于运行在 Linux 上的第三方应用程序,一样有许多性能优化技巧,这些技巧可以帮助你提高 Linux 服务器的性能,降低运行成本。

14、正确配置 MySQL

为了给 MySQL 分配更多的内存,可设置 MySQL 缓存大小,要是 MySQL 服务器实例使用了更多内存,就减少缓存大小,如果 MySQL 在请求增多时停滞不动,就增加 MySQL 缓存。

15、正确配置 Apache

检查 Apache 使用了多少内存,再调整 StartServers 和 MinSpareServers 参数,以释放更多的内存,将有助于你节省 30-40% 的内存。

提高监控 / 故障排除能力的技巧

下面是一些提高 Linux 服务器监控和故障排除的技巧:

16、分析 Linux 服务器性能

提高系统效率最好的办法是找出导致整体速度下降的瓶颈并解决掉,下面是找出系统关键瓶颈的一些基本技巧:

● 当大型应用程序,如 OpenOffice 和 Firefox 同时运行时,计算机可能会开始变慢,内存不足的出现几率更高。

● 如果启动时真的很慢,可能是应用程序初次启动需要较长的加载时间,一旦启动好后运行就正常了,否则很可能是硬盘太慢了。

●CPU 负载持续很高,内存也够用,但 CPU 利用率很低,可以使用 CPU 负载分析工具监控负载时间。

17、学习 5 个 Linux 性能命令

使用几个命令就可以管理 Linux 系统的性能了,下面列出了 5 个最常用的 Linux 性能命令,包括 top、vmstat、iostat、free 和 sar,它们有助于系统管理员快速解决性能问题。

(1)top

Top 命令不仅显示了当前内核服务的任务,还显示了许多关于主机状态的统计数据,默认情况下,它每隔 5 秒自动更新一次显示的数据(这个时间间隔是可以配置的),通过 top 命令,我们可以得知几个结果,如:当前正常运行时间,系统负载,进程数量和内存使用率,此外,这个命令也显示了那些使用最多 CPU 时间的进程(包括每个进程的各种信息,如运行用户,执行的命令等)。

(2)vmstat

Vmstat 命令提供当前 CPU、IO、进程和内存使用率的快照,它和 top 命令类似,自动更新数据,如:$ vmstat 10

(3)iostat

Iostat 命令 (在 Ubuntu,Red Hat/Fedora 上包含在 sysstat 软件包中) 提供三个报告:CPU 利用率、设备利用率和网络文件系统利用率,不加任何参数运行时,iostat 将显示这三个报告,使用 -c,- d 和 - h 参数可以分别独立显示这三个报告。

(4)free

Free 命令显示主内存和交换空间的内存统计数据,指定 - t 参数可以显示总内存数量,指定 - b 参数可以按字节为单位进行显示,使用 - m 则以兆为单位显示,默认情况下是以千字节为单位的。Free 命令也可以使用 - s 参数加一个延迟时间 (单位:秒) 连续运行,如:$ free -s 5

(5)sar

Sar 命令收集,查看和记录性能数据,这个命令比前面几个命令历史更悠久,它可以收集和显示较长周期的数据。
18、将日志文件转移到内存中

当一台机器处于运行中时,最好是将系统日志放在内存中,当系统关闭时再将其复制到硬盘,当你运行一台开启了 syslog 功能的笔记本电脑或移动设备时,ramlog 可以帮助你提高系统电池或移动设备闪存驱动器的寿命,使用 ramlog 的一个好处是,不用再担心某个守护进程每隔 30 秒向 syslog 发送一条消息,放在以前,硬盘必须随时保持运转,这样对硬盘和电池都不好。

19、先打包,后写入

在内存中划分出固定大小的空间保存日志文件,这意味着笔记本电脑硬盘不用一直保持运转,只有当某个守护进程需要写入日志时才运转,注意 ramlog 使用的内存空间大小是固定的,否则系统内存会很快被用光,如果笔记本使用固态硬盘,可以分配 50-80MB 内存给 ramlog 使用,ramlog 可以减少许多写入周期,极大地提高固态硬盘的使用寿命。

20、一般调优技巧

尽可能使用静态内容替代动态内容,如果你在生成天气预告,或其它每隔 1 小时就必须更新的数据,最好是写一个程序,每隔 1 小时生成一个静态的文件,而不是让用户运行一个 CGI 动态地生成报告。

为动态应用程序选择最快最合适的 API,CGI 可能最容易编程,但它会为每个请求产生一个进程,通常,这是一个成本很高,且不必要的过程,FastCGI 是更好的选择,和 Apache 的 mod_perl 一样,都可以极大地提高应用程序的性能。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计4770字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中