![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 83
深山猿
不断进化的深山猿
展开
-
容器化中的k8s技术
56 容器化技术虚拟机和容器对比:技术:虚拟机依赖的是 KVM,容器依赖的是 namespace 和 cgroup 对进程进行隔离。虚拟机更重,需要虚拟出客户机的cpu、内存、存储、网络等资源;容器则很轻量,直接使用宿主机的各种资源。虚拟机的隔离性更高,容器则较低。效率上容器更高。容器用到了什么技术?1)namespace,隔离,每个namespace中的应用看到的,都是不同的IP地址、用户空间、进程ID等、2)cgroup,资源限制,,即明明整台机器有很多的 CPU、内存,但是一个应原创 2021-10-25 19:45:44 · 1245 阅读 · 0 评论 -
虚拟化技术和原理
49 虚拟机为什么需要虚拟机?linux服务器越来越强大,但是有时候并需要很大的服务器。三种虚拟化方式完全虚拟化虚拟化软件会模拟出假的CPU、内存、网络、硬盘等资源,实际资源的获取需要虚拟化软件向物理机申请。虚拟化软件执行转手工作,所以会比较慢硬件辅助虚拟化借助Intel-VT,AMD-V等,并整合kvm技术,设置虚拟机状态,虚拟机内核可以在CPU上执行大部分的指令,不需要虚拟化软件在中间转述,除非遇到特别敏感的指令,才需要将标志位设为物理机内核态运行,这样大大提高了效率。半虚拟化..原创 2021-10-21 20:11:06 · 1371 阅读 · 1 评论 -
操作系统之网络系统
43 预习:Socket通信之网络协议基本原理网络协议:一台机器将内容按照约定好的格式发送出去,另外一台机器收到后能按照约定格式解析,获取到信息。两种网络协议,osi标准七层模型:物理层 数据链路层 网络层 传输层 会话层 表示层 应用层TCP/IP模型:物理层 mac层 ip层 传输层 应用层(dns http)具体如下图:为什么要分层呢?同一套网络协议栈通过切分成多个层次和组合,来满足不同服务器和设备的通信需求。网络协议层次介绍物理层:即物理设备,如连着电脑的网线、wifi.原创 2021-10-11 20:42:03 · 1473 阅读 · 2 评论 -
进程间通讯-管道、信号、内存与信号量
36 进程间通讯方式梳理进程间通讯的方式管道模型如:ps -ef | grep java其中"|"就是一个管道,将前一个命令的输出作为另一个命令的输入。管道是一种单向创术数据的机制,它其实是一段缓存,数据只能从一端写入,另一端输出。且会自动创建自动输出。管道分类:1 匿名管道,这个类型的管道没有名字,用完了就销毁了。2 命名管道创建名称为hello的管道:mkfifo hello向管道中写东西:echo "hello world" > hello 说明:管道里面的内容没有被读出,这.原创 2021-10-09 11:28:14 · 513 阅读 · 0 评论 -
操作系统之输入输出系统
31 输入与输出系统输入输出设备很多,如键盘、鼠标、显示器、网卡、硬盘、打印机等。对于操作系统,这些用法、功能不同的设备怎么统一管理起来呢?设备控制器屏蔽设备差异cpu和设备通过设备控制器来打交道,如磁盘对应的磁盘控制器、USB对应的USB控制器、显示器的视频控制器等。设备控制器像代理商一样屏蔽设备的差异性,且类似于小电脑,有自己的小cpu、寄存器,这样cpu可以对控制器下发指令、查看控制器对设备的操作状态。输入输出设备可以大致分为两类:块设备、字符设备块设备将信息存储在固定大小的块中,每个原创 2021-09-29 15:17:34 · 3807 阅读 · 0 评论 -
操作系统之文件系统
27 文件系统文件系统:和项目运行生命周期无关的地方,可以永久保存,并且空间大。文件系统的功能规划第一点,文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。第二点,文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置。第三点,如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层。第四点,文件应该用文件夹的形式组织起来,方便管理和查询。第五点,Linux内核要在自己的内存里面维护一套数据结构,来保存哪些文件被哪些进程打开和使用。文件系原创 2021-09-24 11:05:06 · 2802 阅读 · 0 评论 -
操作系统内存空间管理:物理虚拟与映射
20 内存管理:规划进程内存空间布局进程间为什么需要内存的隔离?怎么隔离的?假设使用的是物理内存,那同是计算器的进程,使用相同的物理地址,如果打开了三个,三个程序分别数据10\100\1000,那么此时物理地址就不知道保存哪个数据了。隔离方法:进程不直接操作物理地址,操作系统给进程分配虚拟地址。所有进程看到的这个地址都是一样的,里面的内存都是从 0 开始编号。同时操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。程序要访问虚拟地址的时候,由内核的数据结构进行转换,转换成原创 2021-09-01 09:47:03 · 1719 阅读 · 0 评论 -
系统初始化
06 x86架构x86架构统一了计算机的硬件环境,避免了linux操作系统适配不同的硬件平台。硬件图和计算机的逻辑图如图:cpu:中央处理器,是最核心的组件。总线:连接了cpu和其他设备(如内存、显卡、网卡、磁盘、USB),其实就是主板上的集成电路,可以划分为:地址总线:根据地址从内存中获取那个位置的数据数据总线:传输真正的数据数据总线的位数:决定了一次能拿多少个数据进来。例如只有两位,那 CPU 一次只能从内存拿两位数。要想拿八位,就要拿四次。位数越多,一次拿的数据就越多,.原创 2021-07-19 20:21:47 · 961 阅读 · 0 评论 -
linux系统入门与基本指令
技术人员的基础东西:网络 linux系统 数据结构与算法 编译原理 相关课程已经收藏,看完继续学习。趣谈网络协议趣谈linux系统1 为什么学习linux操作系统编程世界中,linux是主流,很多技术,例如云计算、虚拟化、容器等都是基于linux技术linux中很多东西数数据结构和设计模式的落地实践很多技术都是先适配linux,学习新技术更快Linux 的学习过程中,要爬的坡有六个,分别是:熟练使用 Linux 命令行、使用 Linux 进行程序设计、了解 Linux 内核机制、阅读 L原创 2021-06-28 17:29:42 · 176 阅读 · 0 评论 -
nginx的502与supervisord
jenkins发项目成功访问一直报错:nginx的502jps查看进程 进程在 此时想着是nginx、的问题?有人该nginx的配置了?找了半天 找不到有用的日志那项目启动失败,jenkins再次发布 还是不行再仔细看了下服务进程,服务的pid一直在修改,即项目一直在重启。最后看了日志发现,发现项目启动失败(yml文件中少了常量配置导致),然后项目一直在自动重启,所以nginx也就一直在报502原因搞清楚了,下面了解下supervisord中文版介绍:https://www.jians原创 2020-12-10 10:50:15 · 315 阅读 · 0 评论 -
set ps netstat
ps -ef字段含义如下:UID PID PPID C STIME TTY TIME CMDwork 10744 10697 0 15:40 pts/1 00:00:00 grep --color=auto javaUID :程序被该 UID 所拥有PID :就是这个程序的 IDPPID :则是其上级父程序的IDC :CPU使用的资...原创 2020-08-12 15:40:48 · 551 阅读 · 0 评论 -
sftp的使用 lcd/cd/put/get
sftp 使用总结:场景: 将mac上的 /user/mazhen/downloads/TableauServer-64bit-2018-2-3.exe 上传到linux的/home/work首先lcd user/mazhen/downloads/ 定义本地mac目录然后 cd home/work 到linux指定目录put TableauServer-64bit-2018-2-3.ex...原创 2018-10-26 17:59:05 · 21436 阅读 · 0 评论 -
linux中sh脚本的写法
先介绍遇到的问题遇到shell问题:1将变量中的内容输入到某个文件 date8=20181111 #错误方式,linux会认为date8是指令并且去执行,这时候会报20181111是不可识别的指令 #"$date8">>'bg_action_'$date'.txt' #正确方式 echo "$date8">>'bg_action...原创 2018-10-24 15:47:45 · 28694 阅读 · 0 评论 -
linux通过curl方式调用接口
今天遇到个需求,linux上将txt文件导入数据库,需要监测txt中的数据是否完全导入了数据库,即txt中的行数是否和数据库中的行数是否一致的问题。问题是获取txt行数需要执行linux指令,需要java代码知道IP 端口 用户名 密码;线上安全问题,根本不允许java应用有这么大的权限。经过mentor指点,可以反过来,让linux上使用指令调用我的java应用即可,即使用curl指令调用j...原创 2018-11-08 10:31:26 · 63328 阅读 · 3 评论 -
linux crontab定时任务未执行
在遇到这次问题之前,我已经多次使用了定时任务,这次也正常设置了定时任务,但是死活发现定时任务没有执行。crontab设置如下: bg_action_report.sh内容如下:#!/bin/sh#date=`date +%Y%m%d`#filePath='/data/hive-data/report/'#cd $filePathrm 'bg_action_201811...原创 2018-11-19 11:52:26 · 9680 阅读 · 0 评论 -
linux sudo和su
suLinux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。实例变更帐号为 root 并在执行 ls 指令后退出变回原使用者su -c ls root变更帐号为 root 并传入 -f 参数给新执行的 shellsu root -f变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)su - clsung...原创 2019-01-10 14:10:55 · 522 阅读 · 1 评论 -
linux中的查找和替换
一、查找查找命令/pattern<Enter> :向下查找pattern匹配字符串?pattern<Enter>:向上查找pattern匹配字符串使用了查找命令之后,使用如下两个键快速查找:n:按照同一方向继续查找N:按照反方向查找pattern是需要匹配的字符串,例如:/hello<Enter> #查找hello/hello<...转载 2018-12-25 17:49:12 · 7956 阅读 · 0 评论 -
网络调试指令 ping telnet traceroute netstat
ifconfig 使用ifconfig <网络接口名称>接口名称:如eth0.即Ip地址信息的网络接口,在linux系统中,每个网络接口都有配置文件分配一个名称,并使用该名称代指该网络接口网络接口的启用和禁用ifconfig eth0 upifconfig eth0 downping的使用成功执行ping命令,说明接收方和发送方计算机都在网络上且可以相互通信ping...原创 2019-01-09 14:14:28 · 2816 阅读 · 1 评论 -
top和iostat指令的使用,linux负载,swap与内存,io
怎么查看机器IO占用情况?iostat 或 sar怎么查看机器网络状况?dstattop指令一.信息显示Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高….[root@foundation6 docker]# toptop - 21:...原创 2019-05-24 18:42:31 · 3087 阅读 · 0 评论 -
tomcat假死重启脚本
最近几天老是出现tomcat假死的情况,主要表现为,进程还在,但是tomcat不再提供任何服务,并且日志也停止记录。因为暂时无法定位原因,所以先采用临时的解决方案,服务器上增加脚本监控服务,假死发生时自动重启服务。health_rsbi.sh脚本内容如下:#!/bin/bashn=`curl -d "" http://172.18.2.29:8080/rsbi/403.jsp ...原创 2019-07-05 18:33:13 · 424 阅读 · 0 评论 -
awt和sort实现日志分析功能
代码中增加了sql执行日志,包括执行时间和执行sql,代码如下: public void writeLog(long time,String sql){ if(time > LIMIT_TIME){ if(null != LocalUser.getInstance() && null!= LocalUser.getInst...原创 2019-06-02 10:22:05 · 202 阅读 · 0 评论 -
tomcat假死探索与解决,tomcat connector配置
上一篇博客介绍了解决oom导致的程序假死,这里探索解决程序假死的问题。排除oom首先怀疑还是内存溢出导致的,但是:没有有异常日志没有dump文件生成gc.log,证明jvm堆内存还多着呢,如下:[PSYoungGen: 246097K->8179K(240640K)] 1093342K->869809K(4172800K), 0.0522768 secs] [Times...原创 2019-07-05 18:32:11 · 496 阅读 · 0 评论 -
linux指令之du和df,磁盘占用定位
问题现象 文件上传的时候报错,内容如下:sftp> put rsbi.warUploading rsbi.war to /home/boss/rsbi.war 97% 113682KB 684KB/s 00:00:03 ETAput: failed to upload /Users/mazhen/Desktop/rsbi.war. Failuredu[work@tec...原创 2019-07-22 13:34:30 · 421 阅读 · 0 评论 -
linux设置定时任务
确认的crontab服务是否安装并启动service crond status如果灭有,需要确认是否安装crontab -l能识别就说明已经安装,然后没有安装的话进行安装,步骤如下:1.安装crontab[root @ CentOS~] #yuminstallvixie -cron [root @ CentOS~] #yum install crontabs vixie-cron...原创 2018-10-25 16:50:25 · 13746 阅读 · 0 评论