《2023-2024年中国操作系统市场研究报告》显示,银河麒麟操作系统生态建设处于国产操作系统领域领先地位,生态成熟度位居商业版桌面端和服务器端双第一。
笔者现在使用的联想开天,CPU是8核的飞腾腾锐D2000,8GB内存,512GB SSD 硬盘,2GB独立显卡,1000M网卡,银河麒麟V10 SP1操作系统,市场价格在5000RMB以内,在日常办公方面已经很好用了。
03 系统服务
在某些情况下,关闭某些系统服务,可以提升性能。
比如开启firewalld服务管理防火墙规则,在高负载情况下,防火墙规则处理可能会占用大量CPU资源。
开启sshd服务,如果存在大量的SSH连接,该服务可能会占用大量CPU和内存。
samba服务开启后,在高负载情况下,文件共享操作可能会占用大量CPU、内存、网络带宽。
配置Docker服务管理容器,可能会占用大量系统资源。
运行Web服务器、数据库服务等也会大量占用系统资源。
04 内核
内核是操作系统的核心部分,其版本、补丁、编译选项、内核参数等都会影响性能。例如,不同内核版本可能对新硬件的支持不同,优化的算法也可能有所差异,从而影响系统整体性能。
笔者用过的银河麒麟操作系统V4、V10、V10 SP1,一路使用过来,确实有很大的提升。CPU也从飞腾2000变成了飞腾腾锐D2000,4核变8核。
05 库
库是预先编译好的二进制代码集合,提供了各种功能和API(应用程序编程接口),供其他程序调用。分为静态库和动态库,在安装、存储、移植、加载方便各有其优缺点。库对性能的影响体现在测试程序链接动态库的多少以及动态库版本方面。简单点理解就是,一个程序需要加载的动态库较多时性能就会下降。
既然讲了库,那么再介绍一下相关联的软件包管理。银河麒麟操作系统中的APT软件包管理工具是系统更新和维护的重要工具。以下三个常用的命令已经介绍过多次了,这里再啰嗦两句。
apt update:从系统的软件源中获取最新的软件包列表。
apt upgrade:升级所有已安装的软件包到最新版本,确保系统中的软件包保持最新和安全。
apt autoremove:自动删除不再使用的软件包,释放系统的存储空间。
通过使用软件包管理工具,可以方便地更新和维护麒麟操作系统,提升系统的稳定性和安全性。
06 编译器
编译器的版本和参数会影响性能。例如,GCC编译器的不同版本可能在编译优化算法上有所不同,其默认参数也可能影响编译后的程序性能。
07 磁盘和文件系统
磁盘的容量和种类对性能影响较大,分区类型和挂载参数等也有影响。
一般情况下,SSD固态硬盘的读写速度远高于HDD机械硬盘,我们得优先选择SSD固态硬盘,容量当然也是越大越好了。
不同的文件系统在不同的读写场景下性能表现也不同,比如EXT4文件系统成熟稳定,安装系统时适合用于 /boot 分区、/ 根分区,但是在某些高并发高扩展性的应用场景,性能就不如XFS。大家可以根据自己的需求来选择,比如数据分区要是主要用于存储用户数据和应用程序数据,就使用EXT4;如果用来大量地并发写入数据,则可以选择使用XFS。
08 JVM虚拟机
JVM虚拟机的版本和参数(如 -Xms、-Xmx等)会影响性能。在某些环境下,jdk - 1.7的跑分可能高于jdk - 1.8,并且不同的JVM启动参数组合会影响内存分配和垃圾回收等机制,进而影响性能。
09 Shell
Shell的版本和类型对性能有影响,可以通过升级和更换Shell来确定是否会影响性能。
10 磁盘I/O调度
先介绍一下银河麒麟操作系统常见的几种I/O调度器:
cfq:完全公平排队。CFQ将进程分成不同的队列,并尝试公平地分配磁盘访问时间。是早期Linux内核的默认调度算法。 deadline:截止时间调度器。Deadline调度器设置了一个截止时间,确保每个I/O请求在一定时间内得到处理。 noop(none):是一种最简单的先进先出(FIFO)策略。因为固态硬盘支持随机读写,所以固态硬盘可以选择这种最简单的调度策略,性能最好。 bfq:一种改进的公平排队算法。旨在提供更好的响应时间和吞吐量,适用于需要高响应性的场景。
使用以下命令查看当前操作系统的I/0策略:
cat /sys/block/sda/queue/scheduler
我们发现,系统默认使用的是[bfq]改进的公平排队算法。如果需要低延迟的应用,可以将I/O调度器设置为deadline:
echo deadline > /sys/block/sda/queue/scheduler
I/O调度器已成功设置为[mq-deadline]。
文末,介绍两个关于性能查询分析的Linux命令。
1.vmstat是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。
2.top是一个实时显示系统中各个进程的资源占用状况的命令行工具,可以实时查看CPU、内存、磁盘等资源的使用情况。
在系统响应缓慢时,可以通过top命令查看是否有某个进程占用了过多的CPU或内存资源,然后针对该进程进行优化或者调整其优先级等操作,可以使用以下命令:
kill [进程号]
把占用资源太多的进程先干掉。