Linux工具-strace
参考文献
5 simple ways to troubleshoot using Strace
strace
strace命令用于跟踪系统调用和信号.主要用于诊断,调试程序,使用该命令能够打印出进程执行的系统调用信息.
strace常用选项如下:
123456789101112131415161718strace -fT -tt -yy [-p 进程号] -f 跟踪子进程 -T 系统调用执行耗时,行尾展示 -tt 开始执行时间,精度ms,行首展示 -r 打印相对耗时 -yy 打印fd信息,对于文件会打印/文件名,对于socket会打印四元组 -o 打印记录到文件 -ff 搭配-o时使用,同时记录子进程跟踪结果 root@holelin:~# ps -ef |grep sshdroot 794 1 0 04:21 ? 00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startupsroot 1954 ...
网络基础(七)-WebSocket协议
参考文献
趣谈网络协议
WebSocket-RFC-6455
WebSocket
数据格式
123456789101112131415161718 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-------+-+-------------+-------------------------------+|F|R|R|R| opcode|M| Payload len | Extended payload length ||I|S|S|S| (4) |A| (7) | (16/64) ||N|V|V|V| |S| | (if payload len==126/127) || |1|2|3| |K| | ...
MySQL-Security
参考文献
MySQL 8 Cookbook
使用mysql_config_editor进行无密码认证
1234567891011121314151617181920212223242526272829mysql_config_editor --helpmysql_config_editor Ver 1.0 Distrib 5.7.24, for osx11.1 on x86_64Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.MySQL Configuration Utility.Usage: mysql_config_editor [program options] [command [command options ...
读书笔记-动手学深度学习-Pytorch版
参考文献
动手学深度学习 Pytorch版
2.3 线性代数
标量
本书采⽤了数学表⽰法,其中标量变量由普通⼩写字⺟表⽰(例如,xxx、yyy和zzz).本书⽤R表⽰所有(连续)实数标量的空间,之后将严格定义空间(space)是什么,但现在只要记住表达式x∈Rx\in Rx∈R是表⽰x是⼀个实值标量的正式形式.符号∈\in∈称为“属于”,它表⽰“是集合中的成员”.例如x,y∈{0,1}x, y \in \{0, 1\}x,y∈{0,1}可以⽤来表明xxx和yyy是值只能为0或1的数字.
标量由只有⼀个元素的张量表⽰.下⾯的代码将实例化两个标量,并执⾏⼀些熟悉的算术运算,即加法、乘法、除法和指数
123456import torchx = torch.tensor(3.0)y = torch.tensor(2.0)x + y,x * y,x / y,x ** y==> (tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))
向量
向量可以被视为标量值组成的列表.这些标量值被称为向量的元素(element)或分量( ...
MySQL-binlog
参考文献
MySQL技术内幕 InnoDB存储引擎
MySQL 8 Cookbook
binlog
什么是binlog?
二进制日志包含数据库的所有更改记录,包括数据和结构两方面.二进制不记录SELECT或SHOW等不修改数据的操作.
运行带有二进制日志的服务器会带来轻微的性能影响.二进制日志能保证数据库出现故障时数据是安全的.
只有完整的事件或事务才会被记录或者回读.
binlog格式
该参数可设的值有STATEMENT,ROW,MIXED.
STATEMENT模式下,每一条会修改数据的sql都会记录在binlog中.不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能.由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制.
ROW格式,二进制日志记录的不再是简单的SQL语句了,而是记录表的行更改情况.从MySQL5.1版本开始,如果设置了binlog_format为ROW,可以将InnoDB的事务隔离级别设置为READ COMMITTED,以获得更好的并发性.
MIXED格式,默认 ...
MySQL-redo log
参考文献
千金良方: MySQL性能优化金字塔法则
redo log
redo log用来实现事务的持久性,即事务ACID的D.其由两部分组成:
一是内存中的重做日志缓冲(redo log buffer),其是易失的
二是重做日志文件(redo log file),其是持久的.
InnoDB是事务的存储引擎,其通过Force Log at Commit机制实现事务的持久性,即当事务提交(COMMIT)时,必须先将事务的所有日志写入到重做日志文件进行持久化,待事务的COMMIT操作完成才算完成.
redo log基本上都是顺序写的,在数据库运行时不需要对redo log的文件进行读取操作,而undo log是需要进行随机读写的.
WAL(Write-Ahead Logging),它的关键点就是先写日志,再写磁盘.
当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新算完成了.同时,InnoDB引擎会在合适的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做.
InnoDB的red ...
MySQL-undo log
参考文献
undo log
MySQL-sys
参考文献
千金良方: MySQL性能优化金字塔法则
sys系统库使用基础环境
因为sys系统库提供了一些代替直接访问performance_schema的视图,所以必须启用performance_schema(将performance_schema系统参数设置为ON),sys系统库的大部分功能才能正常使用
要完全访问sys系统库,用户必须具有以下权限.
对所有sys表和视图具有SELECT权限.
对所有sys存储过程和函数具有EXECUTE权限.
对sys_config表具有INSERT、UPDATE权限.
对某些特定的sys系统库存储过程和函数需要额外权限,如ps_setup_save()存储过程,需要与临时表相关的权限.
还要有与被sys系统库执行访问的对象相关的权限.
任何被sys系统库访问的performance_schema表都需要有SELECT权限,如果要使用sys系统库对performance_schema相关表执行更新,则需要有performance_schema相关表的UPDATE权限.
INFORMATION_SCHEMA.INNODB_BUF ...
MySQL-performance_schema
参考文献
千金良方: MySQL性能优化金字塔法则
performance_schema
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117mysql> show tables ;+------------------------------------------------------+| Tables_in_performance_schema |+------------------------------------------------------+| accounts ...
Linux工具-fuser
参考文献
fuser
123456789101112131415161718192021222324252627# fuser -hUsage: fuser [-fIMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME... fuser -l fuser -VShow which processes use the named files, sockets, or filesystems. -a,--all display unused files too -i,--interactive ask before killing (ignored without -k) -I,--inode use always inodes to compare files -k,--kill kill processes accessing the named file -l,--list ...