Linux相关知识练习
每日几题:
1. 基础命令
top 命令用来干什么?可以看到哪些性能指标?这些指标代表什么意思?我想把top每秒钟采集一次,采集一分钟,结果生成到一个top日志,该怎么做?
top命令是用来查看系统cpu使用情况的基本命令,是Linux常用性能分析工具,可以实时显示系统中各个进程的资源占用情况,类似windows的任务管理器。运行top命令后,CPU使用状态会以全屏的方式显示,并且处在对话模式。用基于top的命令可以控制显示方式等。top在运行的过程中,按q即可退出top。












在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:

采集top信息并打印成日志的命令:

2.脚本题
有一台主机,由于访问量较大,/var/log每天都会产生很多的日志,将/var/log目录所在的磁盘写满,导致应用异常。由于有些日志定位问题,需要用到,所以我想保留一个周的。请写一个脚本实现,删除一周前的日志,每天晚上零点准时运行脚本。(提示:find crontab)
新建cleanlog.sh脚本文件

编辑cleanlog.sh脚本文件,内容如下:

为cleanlog.sh文件添加满权限
开启定时执行cleanlog.sh脚本清理任务
五个*分别表示分、时、日、月、星期,后边再加上要执行的命令即可

crontab -l 查看已经存在的定时任务

3.概念了解
- 什么叫虚拟化?虚拟化技术用到什么场景?为了解决什么问题?
- 线程锁,进程锁,分布式锁的区别是什么?
1. 虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
2. 虚拟化的原因:
(1)提高现有资源的利用率:通过整合服务器,将共用的基础架构资源聚合到池中,打破原有的“一台服务器一个应用程序”模式。
(2)通过缩减物理基础架构和提高服务器/管理员比率,降低数据中心成本 :由于服务器及相关 IT 硬件更少,因此减少了占地空间,也减少了电力和散热需求 。采用更出色的管理工具可以提高服务器/管理员比率,因此人员需求也得以减少。
(3)提高硬件和应用程序的可用性,进而提高业务连续性 :可安全地备份和迁移整个虚拟环境而不会出现服务中断。消除计划内停机,并可从计划外故障中立即恢复。
(4)实现了运营灵活性 :由于采用动态资源管理、加快了服务器部署并改进了桌面和应用程序部署,因此可响应市场的变化。
(5)提高桌面的可管理性和安全性 :几乎可在所有标准桌面计算机、笔记本电脑或 Tablet PC 上部署、管理和监视安全桌面环境 ,无论是否能连接到网络,用户都可以在本地或以远程方式对这种环境进行访问。
3. 虚拟机的应用场景
基于软件模拟的虚拟机在个人PC端大有用武之地,实现了单机多个用户、多系统环境的访问。
搭建测试环境、搭建开发环境、病毒攻防演练、新版本系统测试、硬件虚拟化的用途自然不用多说,云计算的整个生命周期都离不开它,它使得云计算方便的实现资源调度和弹性伸缩。
桌面虚拟化由ThinClient或移动设备通过网络访问服务器端的各种应用程序,分VDI和VOI两种。
1.应用于日常办公,大大降低了成本投入,同时减少了运维管理复杂度;
2.应用于会议室和培训教室,整个系统可以做到第噪声、低能耗、绿色环保、故障少;
3.应用于学校学生机房、电子阅览室、多媒体教室,桌面切换更迅速、备课教学敏捷性大大提高;
4.应用于政务网亦可以提高办公效率和对公众的服务质量。
2.在分布式集群系统的开发中,线程锁往往并不能支持全部场景的使用,必须引入新的技术方案分布式锁。
线程锁:大家都不陌生,主要用来给方法、代码块加锁。当某个方法或者代码块使用锁时,那么在同一时刻至多仅有一个线程在执行该段代码。当有多个线程访问同一对象的加锁方法/代码块时,同一时间只有一个线程在执行,其余线程必须要等待当前线程执行完之后才能执行该代码段。但是,其余线程是可以访问该对象中的非加锁代码块的。
进程锁:也是为了控制同一操作系统中多个进程访问一个共享资源,只是因为程序的独立性,各个进程是无法控制其他进程对资源的访问的,但是可以使用本地系统的信号量控制。
分布式锁:当多个进程不在同一个系统之中时,使用分布式锁控制多个进程对资源的访问。
分布式锁是什么,怎么实现?
实现分布式锁必须要依靠第三方存储介质来存储锁的元数据等信息。比如分布式集群要操作某一行数据时,这个数据的流水号是唯一的,那么我们就把这个流水号作为一把锁的id,当某进程要操作该数据时,先去第三方存储介质中看该锁id是否存在,如果不存在,则将该锁id写入,然后执对该数据的操作;当其他进程要访问这个数据时,会先到第三方存储介质中查看有没有这个数据的锁id,有的话就认为这行数据目前已经有其他进程在使用了,就会不断地轮询第三方存储介质看其他进程是否释放掉该锁;当进程操作完该数据后,该进程就到第三方存储介质中把该锁id删除掉,这样其他轮询的进程就能得到对该锁的控制。
线程锁,进程锁,分布式锁的作用都是一样的,只是作用的范围大小不同。范围大小:分布式锁 > 进程锁 > 线程锁。能用线程锁,进程锁情况下使用分布式锁也是可以的,能用线程锁的情况下使用进程锁也是可以的。只是范围越大技术复杂度就越大。
本文介绍Linux系统中top命令的使用,包括其功能、性能指标解释及日志采集方法。同时,深入探讨虚拟化技术的概念、应用场景及解决的问题,对比线程锁、进程锁与分布式锁的区别。

1683

被折叠的 条评论
为什么被折叠?



