深入理解Linux的软链接和硬链接等Linux易漏知识

1.不重启tomcat清空日志           echo""> catalina.out

       2.查看某个端口被哪个进程占用    lsof -i :80

       3.退回到上次的目录                      cd -

  

1 深入理解Linux的软链接和硬链接

一直没有深入了解过链接这块的知识,昨晚有个朋友问我这问题,一下子激发了我的兴趣。今天早上过来看了看鸟哥的书然后在stackoverflow上找了一番,感觉自己现在的理解到位了,起码这样理解容易记忆。先来做个实验,在我们的用户目录下,建立一个测试文件夹,然后新建一个文件,并创建这个文件的软链接和硬链接。如下:

1
2
3
vim file1 #新建文件
ln -s file1  file1.soft #软链接
ln file1 file1.hard  #硬链接

紧接着,我偶们看下这三个文件的具体信息:

我们发现软链接的文件属性是l,而硬链接和文件一样,都是-,并且软链接的文件比较小,而硬链接文件大小和原文件一样。紧接着,我们修改下file1文件,然后接着看文件信息:

我们发现,修改完file1后,file1.hard的修改时间也同步发生变化,但是file1.soft的文件时间信息没有发生变化。我们再修改下file1.soft文件,然后查看文件信息,同样发现file1和file1.hard文件的时间信息发生了改变,而file1.soft文件时间信息仍然没有改变。道理先不讲,继续来。

Linux童鞋他只认识数字,其他的啥都不懂,所以在使用Linux的时候,我们很多地方都对应一个数字,比如进程号、权限值等等,文件在Linux中同样也是通过数字来标识的,这个数字就叫文件的索引节点(inode),每个文件都有一个唯一的索引节点我们可以通过“ls -i”来查看文件的inode节点信息,如下:


我们惊奇的发现file1和file1.hard的inode节点值是一样的,这个时候不知道你是不是恍然大悟,因为他们的inode值一样,那Linux在更新文件的时候会根据inode去找到相应的文件然后更新,而每次更新都会找到两个文件。

最后来一句话总结软链接和硬链接:

软链接:相当于快捷方式,可以为所有文件建立软链接。

硬链接:相当于给文件起了个别名,链接文件和源文件其实是同一个文件。不能用于目录。

2 多线程  双核  双CPU的区别 

如果我们把CPU比做一套住房的话,那么 超线程技术实际上就相当于把一间房子人为的通过添加屏风或者推拉门来划分成两小间,虽然表面上每间居住者可以自己干自己的事,不互相影响,但是在出门时都要走同一个大门。而 双核心的实际上就相当于一套两居室,房子里有两个屋子,每个屋子都是独立存在的,不互相干扰。出门时也可以各走各的卧室门到大门口。不过如果因为某些原因,例如放音响声音过大等情况,在同一套两居室里的两个屋子之间也会相互影响。接下来我们再看看 双CPU,他就是名副其实的两套房子,每个房子有每个房子的大门,我们出入大门不会像超线程那样共用一个门,也不会出现双核心那样一个房间因为某些原因影响另一间,即使某个房子播放音响也不会影响到另外一套房子。不过从价格上讲自己划分出一个房间的超线程无疑是最最便宜的,而需要花费高额银子购买两套房子住的双CPU是最贵的。

理解数据库与数据仓库的区别

传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。

理解CPU负载

1.如何查看CPU负载?

在Linux中,我们可以通过top命令来查看CPU负载。

2.CPU负载与CPU利用率的关系?

CPU利用率显示的是程序在运行期间实时占用的CPU百分比,而CPU负载显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。网上有篇文章举了一个有趣比喻,拿打电话来说明两者的区别,我按自己的理解阐述一下。

某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。电话在这里就相当于CPU,而正在或等待打电话的人就相当于任务数。

在电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。为了统计平均负载情况,我们5秒钟统计一次人数,并在第1、5、15分钟的时候对统计情况取平均值,从而形成第1、5、15分钟的平均负载。

有的人拿起电话就打,一直打完1分钟,而有的人可能前三十秒在找电话号码,或者在犹豫要不要打,后三十秒才真正在打电话。如果把电话看作CPU,人数看作任务,我们就说前一个人(任务)的CPU利用率高,后一个人(任务)的CPU利用率低。

当然, CPU并不会在前三十秒工作,后三十秒歇着,只是说,有的程序涉及到大量的计算,所以CPU利用率就高,而有的程序牵涉到计算的部分很少,CPU利用率自然就低。但无论CPU的利用率是高是低,跟后面有多少任务在排队没有必然关系。

3.CPU负载多少才算理想?

CPU负载是基于内核数来计算的!有一个说法,“有多少内核,即有多少负载”。每个内核的负载为1,并不能算是一种理想状态!这意味着我们的CPU一直很忙,不得清闲。网上有说理想的状态是每个内核的负载为0.7左右我比较赞同,0.7乘以内核数,可以得出服务器理想的CPU负载。比如说我们的服务器是双核两个CPU,(一个CPU有俩个核)那么理想的负载应该是:

4*0.7=2.8

4.如何查看CPU个数以及核数?

1)查看CPU个数

1
grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l

2)查看CPU核数

1
cat /proc/cpuinfo |grep 'processor' |wc -l

你可能感兴趣的:(Linux积累)