linux几种典型应用对系统资源使用的特点

简介: 【4月更文挑战第22天】几种典型应用对系统资源使用的特点

几种典型应用对系统资源使用的特点

1 以静态内容为主的 Web应用

这类应用的一个主要特点是小文件居多,并且读操作频繁,Web服务器一般为 Apache或Nginx,因为这两个 HTTP服务器对静态资源的处理非常迅速和高效。在Web访问量不大时,可以直接对外提供服务,但是在有很大并发请求时,单一的 Web服务无法支撑大量的客户端访问,此时就需要由多台Web服务器组成负载集群系统。为了实现更高效的访问,

在最

前端还可以搭建Cache服务器,也就是将静态资源文件缓存到操作系统内存中直接进行读操作,因为直接从内存读取数据要比从硬盘读数据效率高很多,所以在Web前端搭建Cache服务器可以大大提高并发访问性能。常用的Cache软件有 Squid、Varinsh 等。

2 以动态内容为主的Web应用

这类应用的一个特点是频繁地执行写操作,例如Java、PHP、Perl、CGI等,会导致CPU资源消耗严重。因为动态程序的执行要进行编译、读取数据库等操作,而这些操作都会消耗CPU资源。因此,一个基于动态程序的Web应用,应该选择多个性能较高的CPU,这将对系统整体性能的提高有很大帮助。基于动态内容的Web应用在高并发访问时,系统执行的进程数会很多,因此要注意负载的分配。由于过多的进程会消耗大量系统内存,如果内存不足,就会使用虚拟内存,而虚拟内存的增加会导致磁盘写操作频繁,进而消耗CPU资源。因此要寻求一个硬件资源和软件资源的平衡点,例如配置较大的内存和高性能的CPU,而在软件方面可通过如 Memcached之类的软件加快程序与数据库之间的访问效率。

3 数据库应用

  数据库应用的一个主要特点是消耗内存和磁盘IO,而对CPU的消耗并不是很大,因此最基本的做法就是为数据库服务器配置较大的内存和读写较快的磁盘阵列。例如,rI以为数据库服务器的磁盘选择RAID5、RAIDO+1等RAID级别。将Web Server与 DB Server分离也是优化数据库应用的一个常用做法。如果客户端用户对数据库的请求过大,还可以考虑采取数据库的负载均衡方案,通过软件负载均衡或硬件负载均衡的方式提高数据库访问性能。对于数据库中过大的表,可以考虑进行拆分,也就是将一个大表拆分成多个小表,再通过索引进行关联处理,这样可以避免查询大表造成的性能问题,因为表太大时,查询遍历全表会造成磁盘读操作激增,进而出现读操作等待的情况。同时,数据库中查询语句复杂,大量的where子句,order by、group by排序语句等,容易使CPU 出现瓶颈。最后,当数据更新时,数据更新量大或更新频繁,也会造成磁盘写操作激增,出现写操作的瓶颈。这些也应该在程序代码中避免。

 在日常应用中,还有一种方法可以显著提高数据库服务器的性能,那就是读写分离。同时对数据库进行读和写的操作,是效率极低的一种访问方式,较好的做法是根据读、写的压力和需求,分别建立两台结构完全相同的数据库服务器,将负责写的服务器上的数据定时复制给负责读的服务器,通过读写的协作提高系统整体性能。

  通过缓存方式也可以提高数据库的性能,缓存是数据库或对象在内存中的临时容器,使用缓存可大幅减少数据库的读取操作,改由内存来提供数据。比如可以在 Web Server和 DBServer之间增加一层数据缓存层,在系统内存中建立被频繁请求对象的副本,这样一来,不访问数据库也可为程序提供数据。现在应用很广泛的Memcached就是基于这个原理。

4 软件下载应用

静态资源下载服务器的主要特点是带宽消耗严重,同时对存储性能要求也很高。在下载量极高时,可以采用多台、多点服务器分流的形式分担下载负荷。在HTTP服务器方面,从高性能和减少服务器部署的角度考虑,推荐采用Lighttpd HTTP服务器,而不是采用传统的Apache服务器,原因是Apache使用阻塞模式的I/O操作,性能相对较差,并发能力有限,而Lighttpd使用异步IO方式,处理资源下载的并发能力远远超过Apache。

5 流媒体服务应用

流媒体主要应用在视频会议、视频点播、远程教育、在线直播等方面,这类应用主要的性能瓶颈是网络带宽和存储系统带宽(主要是读操作)。面对海量用户,如何保障用户接收到高清晰的、流畅的画面,如何最大限度地节省网络带宽,这些都是流媒体应用要解决的首要问题。对于流媒体服务器的优化,可以从存储策略、传输策略、调度策略、代理服务器缓存策略及流媒体服务器的体系结构设计等几个方面进行考虑。在存储方面,需要对视频的编码格式进行优化,进而节省空间,优化存储性能;在传输方面,可以采用智能流技术控制发送的速率,最大程度地保障用户观看视频的流畅性;在调度方面,可以采用静态调度和动态调度结合的方法;在代理服务器方面,可以采用分段缓存、动态缓存等管理策略;在流媒体体系结构方面,可以采用内存池和线程池技术改善内存消耗和线程过多对性能造成的影响。


目录
相关文章
|
1天前
|
网络协议 Linux 网络安全
Linux命令hostnamectl:掌握系统主机信息的利器
`hostnamectl`是Linux系统管理的关键工具,用于查看和设置主机名、内核信息等。它集成在`systemd`中,通过修改配置文件交互。命令特点包括综合显示多种信息、简单语法和设置功能。例如,`hostnamectl status`显示系统详情,`sudo hostnamectl set-hostname NEWHOSTNAME`用于更改主机名。使用时注意权限、备份配置、更新网络和重启相关服务,避免频繁更改。
|
1天前
|
Java Linux Spring
在 Linux 系统中将 Spring Boot 应用作为系统服务运行
【6月更文挑战第11天】最近由于一些原因,服务器经常会重启,每次重启后需要手动启动 Spring Boot 的工程,因此我需要将其配置成开启自启动的服务。
4 0
|
3天前
|
Linux
Linux 系统日常巡检脚本 干货
Linux 系统日常巡检脚本 干货
7 0
|
3天前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
14 3
|
3天前
|
缓存 监控 Linux
Linux系统性能监控详解
Linux系统性能监控详解
10 1
|
4天前
|
JavaScript Ubuntu Linux
Linux系统之部署PPTist在线演示文稿应用
【6月更文挑战第12天】Linux系统之部署PPTist在线演示文稿应用
12 1
|
4天前
|
安全 Unix Linux
linux系统的基本使用
Linux系统是一种开源和社区开发的操作系统,基于POSIX和UNIX标准,具有多用户、多任务、多线程和多CPU支持的特点。
22 3
|
5天前
|
资源调度 JavaScript Ubuntu
Linux系统之安装Calcium网页计算器
【6月更文挑战第11天】Linux系统之安装Calcium网页计算器
23 1
|
8天前
|
Linux 数据库 数据库管理
Linux下的`db_checkpoint`命令:深入解析与应用
`db_checkpoint`是Linux下Berkeley DB的命令,用于触发检查点操作,保证数据库故障恢复时的一致状态。它锁定数据库、刷新内存中的写入、更新日志并解锁。在Linux中,通过命令行调用,如`db_checkpoint -h /path/to/db_home`,可配合 `-f` 强制写入,`-v` 获取详细输出。注意权限、并发性能影响及事务一致性。使用得当能提升数据库可靠性和性能。
|
9天前
|
存储 编解码 Linux
【IMX6ULL项目】IMX6ULL上Linux系统实现产测工具框架(二)
【IMX6ULL项目】IMX6ULL上Linux系统实现产测工具框架(二)
17 1