ARTS-1

ARTS的初衷

  • Algorithm:主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell
  • Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
  • Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
  • Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。

    作者:陈皓
    链接:https://www.zhihu.com/question/301150832/answer/529809529
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Algorithm

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

使用字典hash的方式,缩短查找目标元素的时间,有点取巧。

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        nums_index = {}
        for i in range(len(nums)):
            nums_index[nums[i]] = i
        for i in range(len(nums)):
            num2 = target - nums[i]
            j = nums_index.get(num2)
            if j and i != j: #需要注意i和j不能相等,因为不能重复利用
                return [i, j]

Tip

1. 使用ldd确认库文件依赖路径是否有问题

ldd <file>可以看到库文件的链接情况,用来帮助排查依赖库缺失的问题。ldconfig可以用来重新生成动态链接库的缓存/etc/ld.so.cache,输出结果是有加载顺序的。

 linux-vdso.so.1 => (0x00007fffbb763000)
 libcudart.so.10.0 => /usr/local/cuda/lib64/libcudart.so.10.0 (0x00007fa9ef69a000)
 libcublas.so.10.0 => /usr/local/cuda/lib64/libcublas.so.10.0 (0x00007fa9eb104000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa9eaee7000)

2. 使用strace分析进程执行耗时,追踪程序问题

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.html

Review && Share

https://landing.google.com/sre/
What is SRE? Hear from our SREs
视频中讲了很多谷歌的SRE对于SRE工作的理解,回答了一些网友的提问(很多也是我的疑问)。正式工作了16个月了,title是SRE,最近却觉得干的活是打杂,sigh~,我需要好好想想自己的处境,想想怎么改变现状,想想自己的成长,不能就真的一直“打杂”下去啊。
视频中关于SRE的事情,其实在《SRE Google运维解谜》这本书中都有提到,不过我做了归类整理和自己的日常工作进行对比。

What do SRE do?

自动化和消灭琐事(Toil)

  1. 自动化不是脚本化,如果整个流程中引入了人工确认,就会引入人工操作失误的风险,导致整个流程的执行效率变低;
  2. 不只是承担琐事,也要去消灭琐事,一个人能cover住的运维琐事是有限的,如果不通过自动化工具减少,会导致overload;
  3. 琐事(包括oncall)的比例不高于50%,如果一个服务频繁报警,导致SRE需要经常人肉运维;那么就需要重新审视整个服务的稳定性状况和SLO了,对于不稳定的服务需要投入人力去提示其稳定性;SLO如果设置太高导致频繁报警,就适当调整SLO;对于达不到SRE运维要求的服务,SRE可以选择退出该服务的运维支持(这需要SRE有足够多的话语权)

这些东西在我的日常工作中也有遇到,然而最近半年多有这么一直趋势,我就算是在非oncall时间,也会被各种琐事包围,有些是必要的(我称之为必要琐事,例如业务逻辑梳理、报警覆盖梳理,但是这部分工作也因为需求变化的问题,导致重复梳理),有些是可被自动化或者干脆就是人肉填系统流程的坑(这些是可以被自动化消灭的Toil,例如服务手动缩容降配、SSH相关问题、工单执行失败处理、CMDB数据修正、其他值班人未及时相应的需求等等)。“必要琐事”是我是可以接收的,在熟悉之后,业务相关的梳理成本是可控的。“Toil”琐事是我想要消灭的,然而现在的问题的,最近半年来,我的大部分精力,甚至包括很多加班的时间,都越来有多地被牵制在人肉处理琐事上,我反而没有精力去自动化琐事,去消灭琐事了!

关于oncall

  1. 技术支持、服务器配置错误、报警处理、工单处理等等工作,这些工作谷歌并没有什么黑客气让它们消失了,只是用各种方法将它们的处理成本降低到了可接受范围内。

区别就在于oncall的压力吧,1)因为报警处理自动化、监控准确性、报警准确性等等基础设施不够完善,导致oncall的压力是很大的,sla报警可能经常触发,甚至导致“狼来了”效应,就像现在大数据相关服务的sla报警我已经习惯了;2)内部平台像是发布系统、工单系统、SSH权限等等多多少少会有小毛病,这些问题的支持很耗人;3)报警或问题发生之后的处理手段也不够好用,像是最近频繁出现的单实例问题,都是靠人肉重启去解决的,而且问题有越来越多的趋势,然而却没看到哪个团队在重点解决,似乎人肉cover住就可以先不管了;4)因为害怕故障发现不及时,同时还在接收很多业务报警、系统底层报警,但是因为业务报警的策略调整权在业务方

关于故障处理

  1. post-mortem,事后故障复盘
  2. 对事不对人,建立故障应急处理流程

这部分是我们团队一直在做的,故障复盘、故障监控发现率建设、故障todo跟进;但是因为故障是和KPI挂钩的,大家在处理故障时,还是会不知不觉跑偏到到底是谁的锅这个问题上,尤其是没有立刻现场复盘的故障。

SRE成为不同团队建的纽带

  1. SRE对公司内部的各种工具、轮子接触的比较多,能够帮助不同团队之间的工具传播

这个是事实,不过并没有作为一件事情来做,就像我对公司内部的服务发现、监控配置、压测平台、发布系统等等工具都是比较熟悉的,平常也会去帮助解答RD的这块疑问。但是,因为时间精力问题,很多细节的东西没有去深入了解,没法在这件事上获得更多收益。

What kind of coding do a typical SRE do?

  1. 没有typical SRE,不同方向的SRE做的coding差别很大;
  2. 故障预测,容量水位。也即现有监控数据的基础上,完善自动化监控;
  3. DBA SRE,协助开发相关系统,这块没太听明白,算是比较专的领域;
  4. 自动化配置,内部系统优化,这也是消灭琐事的一部分;

Coding部分对负责不同岗位的SRE来说是不一样的,硬要从技术难度上做区分,差别也很大,相通点就是在用代码解决运维问题吧。
这部分是我最想做的事情,却也是目前最少做的事情。我希望看到的世界是这样的,我在做一线运维工作,我是这个系统的直接使用者,我向其他团队推广这个系统,如果碰到了问题,我能够(有权利、有时间、有能力)去修复这个问题;而不是像现在这样,靠人工接入人肉维护系统的正常运转(包括CMDB、SSH授权、发布系统),却没有时间去做修复的事情,这就好像整个团队中的脏活累活我们包了,但是背后可以有成长、有收益的活却没有精力去做,只能拱手让人,这样真的会让人找不到成就感,找不到价值感。
我不想这样,我不要这样。

原文地址:https://www.cnblogs.com/carlsplace/p/11832579.html

时间: 2024-11-06 03:54:40

ARTS-1的相关文章

error:Please check whether you installed aRts correctly or use

编译kdelibs-3.5.10.tar.gz checking whether uic supports -L ... yes checking whether uic supports -nounload ... yes checking if Qt needs -ljpeg... no checking for rpath... yes checking for KDE... will be installed in /usr/local/kdelibs3checking grepping

KDE声音服务器 arts

arts介绍arts是KDE的核心声音系统,支持多音频流.全双工.网络声音请求.ALSA与OSS驱动后端.JACK声音服务器后端等扩展,它既是声音服务器,也 提供一套音频软件的开发类库.对于KDE3.x系统来说arts是不可缺少的一部分,KDE中几乎所有与声音有关的特性都和arts有平滑稳定的集成.由于arts是其作者的个人秀,在2004年底作者宣布终止对arts的维护后它已经很难再作出进一步的突破,这之后的更新大多都是其他志愿者的零敲碎 打,而且其艰涩的开发框架对后来者也是一个接手门槛.尽管a

ARTS第五周

ARTS第五周 ARTS是什么? Algorithm:每周至少做一个leetcode的算法题: Review:阅读并点评至少一篇英文技术文章: Tip/Techni:学习至少一个技术技巧: Share:分享一篇有观点和思考的技术文章. Algorithm 题目:买卖股票的最佳时机 IV 解题思路 这是LeetCode上买卖股票系列的最后一题,也是难度最大的一题.这里我们用标准的动态规划算法来解这道题,既然是用动态规划的办法,那就要先定义出动态规划的状态和状态转移方程. 状态:根据题意,我们需要定

ARTS第六周

ARTS第六周 ARTS是什么? Algorithm:每周至少做一个leetcode的算法题: Review:阅读并点评至少一篇英文技术文章: Tip/Techni:学习至少一个技术技巧: Share:分享一篇有观点和思考的技术文章. Algorithm 题目:141. Linked List Cycle 解题思路 本题是链表相关的一道题,题目给出一个链表,问我们这个链表中是否有环.题目中给出了三个例子来帮助我们分析是否有环,我们可以简单理解为,判断链表中是否有节点被超过两个节点的next指针指

ARTS第七周

ARTS是什么? Algorithm:每周至少做一个leetcode的算法题: Review:阅读并点评至少一篇英文技术文章: Tip/Techni:学习至少一个技术技巧: Share:分享一篇有观点和思考的技术文章. Algorithm 本周的算法题是一道关于链表的题目19. Remove Nth Node From End of List,给定一个列表,要求移除倒数第n个节点,并返回头结点. ? 解题思路 由于我们并不知道列表有多长,所以得遍历列表探测当前节点是否是列表尾节点,又因为我们需要

ARTS第八周

ARTS是什么? Algorithm:每周至少做一个leetcode的算法题: Review:阅读并点评至少一篇英文技术文章: Tip/Techni:学习至少一个技术技巧: Share:分享一篇有观点和思考的技术文章. Algorithm 题目:206. Reverse Linked List 解题思路 题目要求反转列表,即原本指向后一个节点的当前节点转而指向它的前一个节点,因此我们使用两个指针来分别表示当前节点和前一个节点,调转当前节点指针指向前一个后,然后依次遍历.. 代码 public L

ARTS第九周

ARTS第九周 ARTS是什么? Algorithm:每周至少做一个leetcode的算法题: Review:阅读并点评至少一篇英文技术文章: Tip/Techni:学习至少一个技术技巧: Share:分享一篇有观点和思考的技术文章. Algorithm 题目:21. Merge Two Sorted Lists 解题思路 此题要求我们合并两个排好序的链表,合并之后的链表要求也是有序的,因此我们在每次做合并操作的时候需要比较两个链表头节点的大小,较小的那个节点加到新链表的尾端. 同时,取较小节点

ARTS第十周

ARTS第十周 ARTS是什么? Algorithm:每周至少做一个leetcode的算法题: Review:阅读并点评至少一篇英文技术文章: Tip/Techni:学习至少一个技术技巧: Share:分享一篇有观点和思考的技术文章. Algorithm 题目:20. Valid Parentheses 解题思路 1.根据题意需要进行括号配对,当遇到左括号的时候需要存起来,以便遇到右括号的时候去取出来进行配对:当遇到右括号的时候就直接去和保存的左括号进行配对. 2.根据配对的特性我们采用栈这种数

AI太复杂?别怕!华为云Model Arts让你分分钟玩转AI!

近两年来,随着全球科学技术的高速发展,AI人工技术已经成了世界各先进国家未来科技发展的焦点,为了能够跟上全球科技发展的大潮流,各国科技界都已集结全部力量,希望能在AI人工智能领域取得有效突破. "未来科技世界是属于AI人工智能的"--仿佛一夜之间,家居,电子产品,电商,汽车,互联网等各种产业都想要搭上AI人工智能这辆通往未来的高速列车,"AI+xx"也成了最新潮的产业布局模式.可是,市场上还有一部分,准确地说是很大一部分传统产业在推进AI的过程中遭遇了瓶颈期--AI

ARTS起始篇

ARTS简要说明(每周需要完成以下四项): Algorithm:每周至少做一道 leetcode 的算法题,编程训练.刻意练习. Review:需要阅读并点评至少一篇英文技术文章,这个是四项里面对我最难的一项.要成为技术高手,英文是必修课. Tip:学习至少一个技术技巧,可以是日常工作中遇到的问题.踩的坑,学习的点滴记录. Share:分享一篇有观点和思考的技术文章.持续的输出,建立自己的影响力. —— 2019.06.08 原文地址:https://www.cnblogs.com/jxl001