首页
学习
活动
专区
工具
TVP
发布

蓝天

专栏作者
526
文章
829303
阅读量
41
订阅数
一个死锁分析过程
第一步的目标是找到锁被谁持有了,这只需要找到死锁的位置,然后查看pthread_mutex_t.__owner值是什么。接下来使用GDB的“info threads”命令找到持有的线程。
一见
2019-09-09
5970
Linux OOM一二三
Linux开发一般会遇到“/proc/sys/vm/overcommit_memory”,即文件/etc/sysctl.conf中的vm.overcommit_memory,Overcommit的意思如同其字面意思,即进程可申请超出可用内存大小的内存(对进程而言实为虚拟内存,一个进程占用的虚拟内存空间通常比物理空间要大,甚至可能大许多)。overcommit_memory有三种取值(注:overcommit_memory并不控制OOM,是否开启OOM由panic_on_oom控制):
一见
2019-09-05
1.5K0
SAR系统性能检测工具
/**  * sar man手册简译, 欢迎大家补充、指正  * Author: cnscn  * Time  : 2006-10-17 09:10  *  */ sar ---  收集、报告或保存系统活动信息 Collect, report, or save system activity information Options: -A    列出保存的当天的所有活动的文件内容, 等同于-bBcdqrRuvwWy -I SUM -n FULL -P ALL -b    报告I/O和传送速率统计。
一见
2019-03-14
1.1K0
Awk学习笔记
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。
一见
2019-03-14
2.4K0
定位Oops的具体代码行
来自Linus Torvalds的讨论: https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111 又,http://kerneltrap.org/Linux/Further_Oops_Insights         例如这样的一个Oops:                 Oops: 0000 [#1] PREEMPT SMP                   Modules linked in: capidrv kernelcapi isdn slhc ipv6 loop dm_multipath snd_ens1371 gameport snd_rawmidi snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd parport_pc floppy parport pcnet32 soundcore mii pcspkr snd_page_alloc ac i2c_piix4 i2c_core button power_supply sr_mod sg cdrom ata_piix libata dm_snapshot dm_zero dm_mirror dm_mod BusLogic sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd                 Pid: 1726, comm: kstopmachine Not tainted (2.6.24-rc3-module #2)                 EIP: 0060:[] EFLAGS: 00010092 CPU: 0                 EIP is at list_del+0xa/0x61                 EAX: e0c3cc04 EBX: 00000020 ECX: 0000000e EDX: dec62000                 ESI: df6e8f08 EDI: 000006bf EBP: dec62fb4 ESP: dec62fa4                  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068                 Process kstopmachine (pid: 1726, ti=dec62000 task=df8d2d40 task.ti=dec62000)                 Stack: 000006bf dec62fb4 c04276c7 00000020 dec62fbc c044ab4c dec62fd0 c045336c                        df6e8f08 c04532b4 00000000 dec62fe0 c043deb0 c043de75 00000000 00000000                        c0405cdf df6e8eb4 00000000 00000000 00000000 00000000 00000000                 Call Trace:                  [] show_trace_log_lvl+0x1a/0x2f                  [] show_stack_log_lvl+0x9b/0xa3                  [] show_registers+0xa3/0x1df                  [] die+0x11f/0x200                  [] do_page_fault+0x533/0x61a                  [] error_code+0x72/0x78                  [] __unlink_module+0xb/0xf                  [] do_stop+0xb8/0x108                  [] kthread+0x3b/0x63                  [] kernel_thread_helper+0x7/0x10                  =======================                 Code: 6b c0 e8
一见
2019-03-14
1K0
LinuxThread VS NPTL
《原文出自http://blog.csdn.net/guosha, 转载请注明出处》
一见
2019-03-14
8550
用awk数组处理两个文件的例子
收了本论坛的三个例子 QUOTE: 1、用某一文件的一个域替换另一个文件中的的特定域? http://bbs.chinaunix.net/forum/viewtopic.php?t=50001
一见
2019-03-14
1.1K0
Linux中的tty与pts
作者: coolentboy  发布日期: 2006-9-17    出自: http://www.linuxdiyf.com
一见
2019-03-14
5.6K0
Bash 强大的History 命令
Bash的使用GUN readline库来处理用户输入,所以BASH也有emacs/vi 两种模式(主要是快捷键不同)(4DOS没有) 一般来说BASH缺省是emacs模式,如果想变成vi模式(如果你是vi用户)就可以了,然后你就可以用和vi一样的快捷键来编辑命令行了.(4DOS没有) set -o vi 不好意思有点远了,接下来还是history命令方面 Emacs and Vi history 编辑快捷键: Emacs 模式: CTRL-p 历史列表上一个. CTRL-n 历史列表下一个. CTRL
一见
2019-03-14
8630
proc /sys/vm 终结版
本人最近会把proc目录详解给大家弄一下,欢迎翻译,有问题则留言。虽然是英文的,但都比较好理解,如有问题,请留言,我们共同为Linux社区而努力。我们翻译效果还不一定好,因为这玩意毕竟是老外搞的吗!!!咯咯,翻译可能引起误解。这玩意看懂需要tcp/ip方面的知识,学好proc对于linux性能优化是非常重要。这来自本人的整理。希望对大家有用。/proc/sys/vm主要是关于虚拟存储的相关信息。这个目录如下:
一见
2019-03-14
1.3K0
Linux对稀疏(Sparse)文件的支持
文件稀疏化(sparsify) 下面的方法都可以将一个文件稀疏化。 1. cp: $ cp --sparse=always file file.sparse cp缺省使用--sparse=auto,会自动探测源文件中是否有空洞,以决定目标文件是否为稀疏文件;使用--sparse=never会禁止创建稀疏文件。 2. cpio: $ find file |cpio -pdmuv --sparse /tmp 如果不加--sparse参数,稀疏文件中的空洞将被填满。 3. tar: $ tar cSf - file | (cd /tmp/tt; tar xpSf -)
一见
2019-03-14
3.5K0
linux下文件数、目录数、文件名长度的各种限制
以下测试都是在没有优化或修改内核的前提下测试的结果 1. 测试目的:ext3文件系统下filename最大字符长度   测试平台:RHEL5U3_x64   测试过程: LENTH=`for i in {1..255};do for x in a;do echo -n $x;done;done` touch $LENTH 当增加到256时,touch报错,File name too long linux系统下ext3文件系统内给文件/目录命名,最长只能支持127个中文字符,英文则可以支持255个字符 2. 测试目的:ext3文件系统下一级子目录的个数限制   测试平台:RHEL5U3_x64   测试过程: [root@fileserver maxdir]# for i in {1..32000};do mkdir $i;done mkdir: cannot create directory `31999': Too many links mkdir: cannot create directory `32000': Too many links ext3文件系统一级子目录的个数为31998(个)。 Linux为了cpu的搜索效率而规定的,要想改变数目大概要重新编译内核.  3. 测试目的:ext3文件系统下单个目录里的最大文件数   测试平台: RHEL5U3_x64   测试过程:   单个目录下的最大文件数似乎没什么特别限制,也是受限于所在文件系统的inode数限制:   df -i或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令    输出结果是一样的,但是跟df所得出的可用inode数会有些误差,至今不明白什么原因。   网上常用两种解决办法:   1) 重新mkfs,ext3默认block大小4096 Bytes,block设置小一些inode数设置大一些   2) 使用loopback文件系统临时解决:       在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个       文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统       性能会有点损失。 4. 测试目的: 打开文件数限制(文件句柄、文件描述符)   测试平台: RHEL5U3_x64   ulimit -n 65535设置,或者/etc/security/limit.conf里设置用户打开文件数、进程数、CPU等
一见
2019-03-14
5.2K0
linux下测试磁盘的读写IO速度
有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策.
一见
2019-03-14
9.6K0
Linux下的strerror是否线程安全?
man strerror即可看到相关说明,strerror_r是线程安全的,但不带_r的strerror是非线程安全的。
一见
2019-03-14
1.2K0
Linux上获取CPU Core个数的实现
1) 调用系统提供的函数get_nprocs(),可以在头文件sys/sysinfo.h中发现它
一见
2019-03-14
2.6K0
Linux后台开发常用工具
sed单引号替换(特殊字符需要使用反斜线”\”进行转义) sed 's/原字符串/替换字符串/' sed双引号替换 sed "s/原字符串包含'/替换字符串包含'/"  sed
一见
2019-03-14
1.3K0
使用Linux自带日志滚动工具logrotate滚动redis日志示例
截至到redis-5.0版本,redis仍然不会自动滚动日志文件,如果不处理则日志文件日积月累越来越大,最终将导致磁盘满告警:
一见
2019-03-14
2K0
源码解读Linux的limits.conf文件
本文不一定适合比较老版本的Linux,如果只关心使用,请直接看“总结”,本文主要针对CentOS,其它Linux发行版本类似,但细节可能有出入,比如重启服务可能不是用systemctl,而是service等。
一见
2019-03-14
1.9K0
Linux后台开发常用工具
本文是个大杂烩,内容为日常点滴的日积月累,持续更新当中,可关注博客(https://blog.csdn.net/Aquester或http://aquester.blog.chinaunix.net),查看最新版本。文中的内容,可帮忙开发提升分析和定位各类问题,比如找出导致IO负载高的进程等,以及一些简单的运维工作等。
一见
2018-12-26
3.5K0
Cron运行原理
本文介绍的是由Paul Vixie开发的运行在SuSE Linux上的Cron。可以通过“man cron”进行确认。
一见
2018-08-10
3.7K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档