strace

如何迅速分析出系统I/O的瓶颈在哪里?

妖精的绣舞 提交于 2020-12-08 14:07:29
性能指标 老规矩,我们先来回顾一下,描述 I/O 的性能指标有哪些?你可以先回想一下文件系统和磁盘 I/O 的原理,结合下面这张 Linux 系统的 I/O 栈图,凭着记忆和理解自己写一写。或者,你也可以打开前面的文章,挨个复习总结一下。 说了这么久的 I/O 性能知识,一说起 I/O 指标,你应该首先会想到分类描述。我们要区分开文件系统和磁盘,分别用不同指标来描述它们的性能。 文件系统I/O性能指标 我们先来看文件系统的情况。 首先,最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等 。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。 不过要注意,这些只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。 而且,如果你配置了 RAID,从文件系统看到的使用量跟实际磁盘的占用空间,也会因为RAID 级别的不同而不一样。比方说,配置 RAID10 后,你从文件系统最多也只能看到所有磁盘容量的一半。 除了数据本身的存储空间,还有一个 容易忽略的是索引节点的使用情况,它也包括容量、使用量以及剩余量等三个指标 。如果文件系统中存储过多的小文件,就可能碰到索引节点容量已满的问题。 其次,你应该想到的是前面多次提到过的缓存使用情况,包括页缓存、目录项缓存、索引节点缓存以及各个具体文件系统(如 ext4、XFS

10条PyTorch避坑指南

和自甴很熟 提交于 2020-11-30 23:40:19
点击上方“ 视学算法 ”,选择加" 星标 " 重磅干货,第一时间送达 本文转载自:机器之心 | 作者:Eugene Khvedchenya 参与:小舟、蛋酱、魔王 高性能 PyTorch 的训练管道是什么样的?是产生最高准确率的模型?是最快的运行速度?是易于理解和扩展?还是容易并行化?答案是,包括以上提到的所有。 如何用最少的精力,完成最高效的 PyTorch 训练? 一位有着 PyTorch 两年使用经历的 Medium 博主最近分享了他在这方面的 10 个真诚建议 。 ‍ 在 Efficient PyTorch 这一部分中,作者提供了一些识别和消除 I/O 和 CPU 瓶颈的技巧。第二部分阐述了一些高效张量运算的技巧,第三部分是在高效模型上的 debug 技巧。 在阅读这篇文章之前,你需要对 PyTorch 有一定程度的了解。 好吧,从最明显的一个开始: 建议 0:了解你代码中的瓶颈在哪里 命令行工具比如 nvidia-smi、htop、iotop、nvtop、py-spy、strace 等,应该成为你最好的伙伴。你的训练管道是否受 CPU 约束?IO 约束?GPU 约束?这些工具将帮你找到答案。 这些工具你可能从未听过,即使听过也可能没用过。没关系。如果你不立即使用它们也可以。只需记住,其他人可能正在用它们来训练模型,速度可能会比你快 5%、10%、15%-……

高性能PyTorch是如何炼成的?过来人吐血整理的10条避坑指南

≡放荡痞女 提交于 2020-11-29 22:47:57
选自towardsdatascience 作者:Eugene Khvedchenya 机器之心编译 参与:小舟、蛋酱、魔王 高性能 PyTorch 的训练管道是什么样的?是产生最高准确率的模型?是最快的运行速度?是易于理解和扩展?还是容易并行化?答案是,包括以上提到的所有。 如何用最少的精力,完成最高效的 PyTorch 训练? 一位有着 PyTorch 两年使用经历的 Medium 博主最近分享了他在这方面的 10 个真诚建议 。 ‍ 在 Efficient PyTorch 这一部分中,作者提供了一些识别和消除 I/O 和 CPU 瓶颈的技巧。第二部分阐述了一些高效张量运算的技巧,第三部分是在高效模型上的 debug 技巧。 在阅读这篇文章之前,你需要对 PyTorch 有一定程度的了解。 好吧,从最明显的一个开始: 建议 0:了解你代码中的瓶颈在哪里 命令行工具比如 nvidia-smi、htop、iotop、nvtop、py-spy、strace 等,应该成为你最好的伙伴。你的训练管道是否受 CPU 约束?IO 约束?GPU 约束?这些工具将帮你找到答案。 这些工具你可能从未听过,即使听过也可能没用过。没关系。如果你不立即使用它们也可以。只需记住,其他人可能正在用它们来训练模型,速度可能会比你快 5%、10%、15%-…… 最终可能会导致面向市场或者工作机会时候的不同结果。

如何解决s权限位引发postfix及crontab异常

戏子无情 提交于 2020-11-13 04:58:14
一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法使用crontab -e 编辑自身任务计划时,也会提示“ crontab: edits left in /tmp/crontab.XXXXCl0bLz” 。 二、问题分析与解决 1、postdrop异常问题 使用postfix check命令检测发现有如下报错: postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postqueue postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postdrop 上面的提示其实已经非常清楚了,在这两个可执行文件的组权限中,没有s权限位。慎重起见,不审找了一台主机对比下,发现确实不存在s权限,正常的权限如下: # ll /usr/sbin/postqueue -rwxr-sr-x. 1 root postdrop

#转载备忘# Linux程序调试工具

∥☆過路亽.° 提交于 2020-11-12 12:02:42
Ref: https://linuxtools-rst.readthedocs.io/zh_CN/latest/advance/02_program_debug.html 2. 程序调试 目录 程序调试 进程调试 gdb 程序交互调试 pstack 跟踪栈空间 strace 分析系统调用 目标文件分析 nm objdump readelf size 查看程序内存占用 file 文件类型查询 strings 查询数据中的文本信息 fuser 显示文件使用者 xxd 十六进制显示数据 od 2.1. 进程调试 gdb 程序交互调试 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具; GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。 以下从一个完整的调试过程简单说明最基本的几个命令; $gdb programmer # 启动gdb >break main # 设置断点 >run # 运行调试程序 >next # 单步调试 >print var1 # 在调试过程中,我们需要查看当前某个变量值的时候,使用print 命令打印该值 >list # 显示当前调试处的源代码 >info b # 显示当前断点设置情况

查漏补缺:166个最常用的Linux命令,哪些你还不知道?

狂风中的少年 提交于 2020-11-07 19:33:07
作为一个程序员,恐怕从你刚踏入工作岗位之后,服务器这个东西就和你形影不离,这也就导致你从此就开始和Linux相依为伴。 linux命令是对Linux系统进行管理得命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。 ps:吹个牛逼,有的朋友会跟我说,图形化界面用着多舒服啊,和windows一样多方便,但是我从开始接触Linux就一直只是用命令行操作,说实话,抛开mini版本和DVD版本对pc端内存占用情况不说,单纯的命令行也加深了我对于文件系统的不少认知,并且操作命令总感觉有一种大神的感觉,不需要鼠标,直接手指在键盘上飞舞,多帅气,就是时间长了会很累 另外,给大家说一个我一直坚持的习惯,整理思维导图,就像Linux命令,我在学习的时候觉得自己学的挺不错的,但是后来工作了,发现好多东西都忘了,在重新学习之后,我就整理了一套思维导图,虽然挺费劲的,并且后期很多知识点都烂熟于心了,但是,当真的有事情的时候,这样一张思维导图会帮你解决不少问题 好了,话归整体,对于常用Linux命令,我们来看看吧,有不足的,欢迎大家评论区讨论 个人公众号:Java架构师联盟,每日更新技术好文 线上查询及帮助命令(2个) man:查看命令帮助,命令的词典,更复杂的还有info,但不常用。 help

DevOps工程师的必备技能清单

烂漫一生 提交于 2020-11-01 06:25:06
在公司成立之前,我们团队就已经开始应用 DevOps 实践,而我个人,早在十年前,在另一家公司担任系统管理员的时候,就第一次接触到了这种新鲜的思维方式。那个时候,还没有 DevOps 这种标准说法,但是当时实践的人也自己摸索出了一些相关的概念与原则。 持续集成; 自动交付; 每位团队成员都对产品负有责任; 与客户直接沟通; 收集并分析业务 / 应用程序指标; 说明文档等; 后来证明以上这一切都是对敏捷倡议中各项实践的逻辑扩展,而催生出这些方法的温床,则是开发者不再单纯为本地主机编写代码这一基本前提。 Atlassian 提出的 DevOps 原理 由 Atlassian 提出的 DevOps 模式直到今天仍然非常重要。从本质上讲,其代表着产品开发与交付的现代化周期,同时涵盖产品启动之后的运作流程。 前 DevOps 时代:管理员与开发者之间的鸿沟 长久以来,产品的运营与开发工作彼此割裂。这条鸿沟的一端是勤劳朴实的开发人员,另一端则是开发者眼中那些如同行尸走肉般的系统管理员。系统管理员不参与开发,也不会与开发团队沟通,他们通常只是直接拿到代码包,然后尝试在某个位置加以运行。每一次运行尝试都痛苦万分,管理员们需要花几天时间慢慢查看日志、寻找种种难以理解的错误、分析数据库查询、陷入无穷无尽的 strace 过程等。而很多时候的事实都证明,只需要定义一项新的环境变量或者添加一个新参数

人工智能如何提升大数据存储与管理效率?

懵懂的女人 提交于 2020-10-30 17:05:50
简介: 通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平。而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案。 随着大数据的大量来源以及企业可用数据量的增加,存储容量规划已成为存储管理员的问题。据估计,每天产生2.5万亿字节的数据。现在,如果以神经元计算的话,那就是相当于2.5亿个人类大脑的海量数据。而且,相同的估计表明,全球总数据的90%是从2016年到2018年生成的。 可以简单地说,每天生成越来越多的数据,这正增加了存储工作负载的规模和复杂性。但是,人工智能可以拯救存储管理员,帮助他们高效地存储和管理数据。通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平。而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案。 存储管理员需要努力的主要指标 存储管理员在管理存储问题时面临一些挑战。而且,如果他们克服了这些挑战,将帮助他们在数据存储的各个方面之间找到适当的平衡,例如在哪里分配工作负载,如何分配工作负载以及如何优化堆栈等等。 一般而言,吞吐量是指处理某事物的速率。在网络级别,吞吐量的度量单位是Mbps(兆位/秒),而在存储级别,吞吐量的度量单位是MB /秒(兆字节/秒)。由于一个字节等于八兆位,因此生产率在存储级别上提高了。并且,变得难以管理提高的生产率。 1. 延时 延迟是服务器完成请求所花费的时间。关于存储

最实用!阿里运维指南之Linux系统诊断(附网盘链接)

社会主义新天地 提交于 2020-10-30 16:21:20
今天跟大家分享的是阿里内部关于运维的Linux的系统诊断案例分析, 文末获取网盘链接 一、Linux 启动与登录问题 1.超详细系统启动与登陆异常排查点 2.grub.conf 文件内容被清空了怎么办 3.巧妙利用 strace 查找丢失的文件 4.小心 PAM 不让你登录 5.CentOS 登录卡住的原因被我找到了 二、Linux 性能问题 1.找到 Linux 虚机 Load 高的“元凶” 2.OOM killer 是被谁触发的 3.我的服务器内存去哪儿了 4.CPU 占用不高但网络性能很差的一个原因 5.一次 IO 异常捕获过程 三、Linux 主机网络问题 1.ifdown ifup 命令丢失处理 2.网络不通? strace 二度出手 3.TIME_WAIT & CLOSE_WAIT 的讨论总结 4.一次网络抖动经典案例分析 四、Linux 系统服务与参数问题 1.4 个 limits 生效的问题 2.6 步排查 ss& netstat 统计结果不一样的原因 3.为什么明明内存很充足但是 java 程序仍申请不到内存 4.请不要忽略 min_free_kbytes 的设置 五、最后的彩蛋 某地区口罩项目架构演进及优化经验 点击链接获取全文 链接: https://pan.baidu.com/s/1S9xoEU72wIVEN_42KkMgpA 提取码:do8d

人工智能如何提升大数据存储与管理效率?

孤街醉人 提交于 2020-10-29 11:18:03
简介: 通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平。而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案。 随着大数据的大量来源以及企业可用数据量的增加,存储容量规划已成为存储管理员的问题。据估计,每天产生2.5万亿字节的数据。现在,如果以神经元计算的话,那就是相当于2.5亿个人类大脑的海量数据。而且,相同的估计表明,全球总数据的90%是从2016年到2018年生成的。 可以简单地说,每天生成越来越多的数据,这正增加了存储工作负载的规模和复杂性。但是,人工智能可以拯救存储管理员,帮助他们高效地存储和管理数据。通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平。而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案。 存储管理员需要努力的主要指标 存储管理员在管理存储问题时面临一些挑战。而且,如果他们克服了这些挑战,将帮助他们在数据存储的各个方面之间找到适当的平衡,例如在哪里分配工作负载,如何分配工作负载以及如何优化堆栈等等。 一般而言,吞吐量是指处理某事物的速率。在网络级别,吞吐量的度量单位是Mbps(兆位/秒),而在存储级别,吞吐量的度量单位是MB /秒(兆字节/秒)。由于一个字节等于八兆位,因此生产率在存储级别上提高了。并且,变得难以管理提高的生产率。 1. 延时 延迟是服务器完成请求所花费的时间。关于存储