前言 垃圾收集算法是内存回收的方法论:垃圾收集器是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商.不同版本的虚拟机所提供的垃圾收集器都有很大的差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器.   虚拟机里并不是使用一个收集器,而是很多收集器搭配使用,在不同的年代使用不同的收集器. 一.Serial收集器 Serial收集器是最基本.发展历史最悠久的收集器.曾经是虚拟机新生代收集的唯一选择.这个收集器是一个单线程…
前言 从原来只知道-Xms.-Xmx是设置内存的,到现在稍微理解了一些堆内存等Java虚拟机的一些知识.明白了技术这一个东西还是得要有输入才能实践,原理与实践要相辅相成,后续把JVM的监控好好总结一下.以前做了很多的关于JVM方面的监控,仅仅只是做了,但是不知道是什么意思,不知道怎么分析.   垃圾收集算法 一.标记(清除算法)   最基础的收集算法是"标记-清除"(Mark-Sweep)算法,算法分为"标记"和"清除"两个阶段.首先标记出所有需…
前言 不知道自己不知道,不知道自己知道,知道自己不知道,知道自己知道,目前处于知道自己不知道这个阶段,很痛苦啊,干了4年了运维,是一个坎.越来越发觉想要走得远,还是得扎根底.   一.运行时数据区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途.以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁.   1)程序计数器 程序计数器(Program Counter Register)…
一.判断对象是否存活     1.引用计数算法   给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1:当引用失效时,计数器的值就减1:任何时刻计数器为0的对象是不可能再被使用的.引用计数算法(Reference Counting)的实现简单,判断效率也很高,在大部分情况下是一个不错的算法,但是主流的Java虚拟机里面没有选用引用计数算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环引用的问题.   2.可达性分析算法   在主流的商用程序语言(Java.C#)的主流实现…
前言 本文记录日常学习<深入理解Java虚拟机>,不知道为啥感觉看一遍也就过了,喜欢动动手理解理解,这样才有点感觉,静不下心来的时候,看书抄书也可以用这个办法. 一.什么是JIT(Just In Time Compiler)即时编译器 在虚拟机中(Sun HotSpot),Java程序最初是通过解释器执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为"热点代码"(Hot Spot Code).为了提高热点代码的执行效率,在运行时,虚拟机会把这些代码编…
Linux运维不可不知的性能监控和调试工具 1 nagios Nagios是一个开源监控解决方案,我觉得他可以监控一切 ,可以看一下我以前的文章:NAGIOS 2 ps #用来查看程序的运行情况 ps -ef |grep svr.py|grep -v grep |awk '{print $2}' #查看svr.py的进程pid号 14554 dongwm@linux-b8lh:~> ps -e -o pid,args --forest #层次结构中的进程ID 3 free #查看系统的物理(RA…
本节内容 上节内容回顾(函数) 装饰器 模块 包 1.上节内容回顾(函数) 函数 1.为什么要用函数? 使用函数之模块化程序设计,定义一个函数就相当于定义了一个工具,需要用的话直接拿过来调用.不使用模块化程序设计的缺点: 体系结构不清晰,可读写差 可扩展性差 程序冗长 2.定义函数分三种 # -*- coding: UTF-8 -*- #blog:http://www.cnblogs.com/linux-chenyang/ # #1.无参函数 def foo(): print('in the f…
一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过. 什么是 AOP ? AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP 是 OOP 的延续,是软件开发中的一个热点,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生…
“不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作也比较重视,逐步走向Manager的岗位:第二种是业务管理出身或者有IT技术背景,具备了一定经验直接进入IT管理层的人员. 那么做为一个Linux运维经理,你需要哪些技能武器.管理哪些细节,具备什么样的能力? 运维技能武器库 Bootstrapping: Kickstart.Cobbler.rpmb…
不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题. 如何成为运维经理.一般来说,运维经理大概有两种出身,一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作也比较重视,逐步走向Manager的岗位.第二种是业务管理出身或者有IT技术背景,具备了一定经验直接进入IT管理层的人员. 那么做为一个Linux运维经理,你需要哪些技能武器.管理哪些细节,具备什么样的能力? 运维…
运维中关键技术点解剖:1 大量高并发网站的设计方案:2 高可靠.高可伸缩性网络架构设计:3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案:5 海量数据存储架构 一.什么是大型网站运维? 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的:然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范.知名度.服务器量级.pv量等考虑,其它因素不是重点:因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排名前…
前言 我们已经发过不少 Linux 面试题,但是单独的面试题总感觉会过于零碎,没有体系化内容给人的帮助大. 知乎上有这样一个问题:一个新手面试 Linux 运维工作至少需要知道哪些知识?其中有一个答案对这一话题的解读非常深入,今天特别分享给大家. 什么大型网站运维 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的:然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范.知名度.服务器 量级.pv量等考虑,其它因素不是重点:因此,我们先…
如何迅速掌握并提高linux运维技能   文章来源于南非蚂蚁   之前曾经写过一篇如何学习Linux的文章,得到了很多反馈,大家都在分享自己的学习经验和体会,并且也提出了不少意见和建议.学习这个事情其实是说起来容易,做起来就很难,虽然给大家提高了很多学习linux的思路和方法,但是很多时候,学习的过程是个锻炼和总结的过程,需要自己去体会和领悟,而这个领悟跟钻研的深度有关,所以,对linux技术点钻研较深的朋友,可能收获的知识就多一些,提高也就快一些,而相反,不太喜欢钻研的朋友们,技能提高就稍微慢…
运维中关键技术点解剖:1 大量高并发网站的设计方案 :2 高可靠.高可伸缩性网络架构设计:3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案:5 海量数据存储架构 一.什么是大型网站运维? 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的:然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范.知名度.服务器 量级.pv量等考虑,其它因素不是重点:因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排…
知乎上有这样一个问题:一个新手面试 Linux 运维工作至少需要知道哪些知识?其中有一个答案对这一话题的解读非常深入,今天特别分享给大家. 一.什么是大型网站运维? 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的:然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范.知名度.服务器 量级.pv量等考虑,其它因素不是重点:因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排名前10),如sina.baidu. QQ…
一直想努力向别人(甚至包括从事运维的人)解释清楚什么是运维,发现很难! 6月20号,在InfoQ高效运维群里面,对运维创业做了一次激烈的讨论,很自然地,过程中不可避免的谈到运维苦逼和运维无法产品化的问题,这是一些运维需要说服自己,证明自己价值的问题.对于本人来说,运维的价值不容置疑,只要我们运维人能自我认识突破,更体系化的站在业务角度看待运维价值问题,那我们就不是一个苦逼的成本部门.此时我自然的想到了[IT运营],它带来的视界会更加开阔,能够帮助更好的重新认识运维. 一.运维是什么 运维从IT软…
初中级Linux运维人员们系统学习并迅速掌握Linux的运维实战技能.学习路线大纲如下: 入门基础篇 系统运维篇 Web运维篇 数据库运维篇 集群实战篇 运维监控篇 第一篇:Linux入门(安装.配置.shell命令)基础篇   一. 学习Linux的经验与技巧   1.1 Linux在各领域发展的现状和趋势 1.1.1 Linux与开源软件(Linux成就了开源) 1.1.2 Linux在服务器领域的发展(市场占有率95%,2015年数据) 1.1.3 Linux在桌面领域的发展 1.1.4…
摘要:本文从单机真机运营的历史讲起,逐步介绍虚拟化.容器化.Docker.Kubernetes.ServiceMesh的发展历程.并重点介绍了容器化阶段之后,各项重点技术的安装.使用.运维知识.可以说一文讲清楚服务器端运维的热点技术. 序 文章的名字起的有点纠结,实际上这是一篇真正从基础开始讲解,并试图串联起来现有一些流行技术的入门文章. 目前的企业级运营市场,很有点早几年前端工程师所面临的那样的窘境.一方面大量令人兴奋的新技术新方案层出不穷:另外一方面运维人员也往往陷入了选择困局,艰于决策也疲…
4年!我对OpenStack运维架构的总结 原创: 徐超 云技术之家 今天 前言 应“云技术社区”北极熊之邀,写点东西.思来想去云计算范畴实在广泛,自然就聊点最近话题异常火热,让广大云计算从业者爱之深.痛之切,想说一声爱你,不容易的OpenStack吧. 这里,仅从技术角度出发,谈谈OpenStack云平台在部署.架构和运维实施等方面的感想. 缘起,在2014年大二首次接触到OpenStack,当时国内外资料远没有当前这么丰富,为安装一个OpenStack H版环境(一台笔记本用VMware W…
这里,仅从技术角度出发,谈谈OpenStack云平台在部署.架构和运维实施等方面的感想. 缘起,在2014年大二首次接触到OpenStack,当时国内外资料远没有当前这么丰富,为安装一个OpenStack H版环境(一台笔记本用VMware Workstation虚拟出2台虚拟机)愣是用了1个星期多,最后仍然创建虚拟机失败.后来为了学习OpenStack,临近毕业时特意去上海实习工作,不觉间已经四年了. OpenStack涉及的东西太多太多,计算.存储.网络.架构.产品.运维.监控和性能优化.代…
云时代IDC自动化运维的几大神器 2016年09月18日 10:27:41 天府云创 阅读数:1715   版权声明:本文为EnweiTech原创文章,未经博主允许不得转载. https://blog.csdn.net/English0523/article/details/52572114 自动化运维是数据中心.互联网企业高度重视的方向,数据中心的从纯手工.重复地进行软件部署运维,经历编写脚本运维,再到借助第三方工具高效.方便地部署和运维,在转变的过程中已大大提升了运维的效率和性能.下面给大家…
这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Java 也正好是一个无意之间产生的必然的结果. 很荣幸,当时我差一点没考上大学,还好只有一个叫「软件技术(.NET 方向)」的专业收了我,其实,一直到报道进了学校,我当时并不知道这个专业是干嘛的,听他们说,我们要学一种语言,我想:完蛋了.因为我长这么大只学会了汉语,英语我从没考过及格,又要学语言!不是…
每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就算这样,但你肯定也会有后台管理及登录功能. 每个项目中都会有这些几乎一样的业务逻辑,我们能不能把他们做成通用的系统呢? AOP 实现用户权限验证 在从零开始学 Java - Spring AOP 拦截器的基本实现这篇文章中,我详细的写了什么是 AOP ? . AOP 主要能实现什么功能? AOP 在…
深刻讨论为什么要读写分离? 为了服务器承载更多的用户?提升了网站的响应速度?分摊数据库服务器的压力?就是为了双机热备又不想浪费备份服务器?上面这些回答,我认为都不是错误的,但也都不是完全正确的.「读写分离」并不是多么神奇的东西,也带不来多么大的性能提升,也许更多的作用的就是数据安全的备份吧. 从一个库到读写分离,从理论上对服务器压力来说是会带来一倍的性能提升,但你仔细思考一下,你的应用服务器真的很需要这一倍的提升么?那倒不如你去试着在服务器使用一下缓存系统,如 Memcached.Redis 这…
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是这样. 游天鸣和蓝玉不正说明了两种截然不同的人生么.随着社会的进步,那些消失的艺术或者说民间艺术可能现实中我们再也见不到了,这个社会永远都是优胜劣汰,消失以为着不再需要,只不过这些老物件有更多的技艺和精神层面的东西罢了. <百鸟朝凤>这部电影我最近才在网络上看,看完后我久久不能动弹,它并没有强烈的…
如果你在学习Linux,那么强烈推荐你选择RHEL和Centos作为学习的Linux发行版本,在公司及企业当中他们是使用最多的,毕竟学习除了本身是爱好,其次也是为了就业.Centos是RHEL的克隆版本,免费使用,二个发行版没有任何区别.成长为一名Linux工程师,只需要掌握以下方面的技能,那日常工作一点问题都没有. 1.扎实的基础 试想如果没有最扎实的基础,如何去查看文件类型.查看系统运行状态.编辑文件.输出文件.创建用户.分配帐户权限.使用RAID技术和LVM磁盘阵列等最最基础的知识,一定要…
运维人员需不需要学开发?需不需要学 Python?PythonN 和 Shell 有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试.优化开发人开发的程序,开发人员有的时候很少关注性能的问题,这些问题就得运维人员来做,一个业务上线了,导致 CPU 使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人…
运维人员需不需要学开发?需不需要学Python?PythonN和Shell有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试.优化开发人开发的程序,开发人员有的时候很少关注性能的问题,这些问题就得运维人员来做,一个业务上线了,导致CPU使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人员处理了,这…
零.前言 之一 为什么写这个系列?为什么是Linux? 老婆自从怀孕以后,辞职在家待了好几年了,现在时常感觉与社会脱节.所以想找个工作. 做了多年程序员,有点人脉也都基本是在IT圈子里,只能帮忙找找IT类的工作. 而我觉得入门Linux运维其实是比较简单的,但是没人教的话又比较难.所以萌生了写这个系列教程的想法. 写这个系列,我感觉颇有点自不量力,因为我接触Linux的时间也并不久. 但是列出这个大纲,是有点自己的考虑的. 主要是从实际工作上来出发,实操的多,讲道理的少. 很多人一开始接触Lin…
目录 教老婆学Linux(二)Linux常用命令指南[上] 一.概述 二.常用命令 教老婆学Linux(二)Linux常用命令指南[上] 作者:姚毛毛的博客 tips:文章太长,分两篇发出,本篇发前三个章节: 1.文件及目录操作: 2.文件查看及编辑 3.文件查找及统计. 一.概述 1.1写在前面 & 学习指南 本文目的:主要是作为一张给初学者入门Linux的学习地图. 所以我只会讲一些我们生产过程中常用的命令及操作,对于命令的一些偏门用法本文会一带而过甚至不讲. 对于Linux命令详解可以参考…