w1100n
This site is best viewed in Google Chrome
wiloon, 9/24/2018 20:19

Directly run bash scripts in Github Gists locally in Terminal. Get the raw version of it and copy the link. Now we are going to curl that link to get the content in the file and then pass that content … Continue reading

wiloon, 9/23/2018 13:52

sqlectron-gui hyper yay: redis-desktop-manager visual-studio-code-bin

wiloon, 9/21/2018 13:14

http://www.runoob.com/docker/docker-install-redis.html

wiloon, 9/19/2018 12:48

https://stackoverflow.com/questions/26884335/tomcat-deploy-only-manager-on-startup From the Apache 6 documentation: https://tomcat.apache.org/tomcat-6.0-doc/config/context.html in the Attributes section of Context, the documentation for the path attribute specifies: This attribute must only be used when statically defining a Context in server.xml. In all other circumstances, the path will … Continue reading

wiloon, 9/7/2018 10:42

http://debugo.com/dnsmasq/ DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络。它提供了DNS功能和可选择的DHCP功能可以取代dhcpd(DHCPD服务配置)和bind等服务,配置起来更简单,更适用于虚拟化和大数据环境的部署。 dhcp服务 其中一些关键的配置如下,配置文件/etc/dnsmasq.conf 中的注释已经给出了非常详细的解释。 服务监听的网络接口地址 If you want dnsmasq to listen for DHCP and DNS requests only on specified interfaces (and the loopback) give the name of the interface (eg eth0) here. Repeat the line for more than one … Continue reading

wiloon, 9/3/2018 16:17

将 /usr/local/share/ca-certificates/.crt 移动到 /etc/ca-certificates/trust-source/anchors/ 下 对 /etc/ssl/certs/.pem 进行上述操作,并将它们重命名为 *.crt 运行 trust extract-compat

wiloon, 9/1/2018 11:34

列编辑 Shift+Alit+鼠标左键拖动,选中拖动的区域内容 https://blog.csdn.net/u011127019/article/details/74039598

wiloon, 8/31/2018 11:19

Details Availability Zone Any Availability Zone Instance Name: foo Flavor:2U, 4G, 100G Instance Count: 1 Instance Boot Source: Boot from image Image Name: CentOS7.3 access & Security Key Pair: test0 Security Groups: default Networking vlan-37

wiloon, 8/31/2018 10:21

https://blog.csdn.net/sunboy_2050/article/details/9288353 shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件 :代表重定向到哪里,例如:echo “123” > /home/123.txt 1 :表示stdout标准输出,系统默认值是1,所以”>/dev/null”等同于”1>/dev/null” 2 :表示stderr标准错误 & :表示等同于的意思,2>&1,表示2的输出重定向等同于1 1 > /dev/null 2>&1 语句含义: 1 > /dev/null : 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。 2>&1 :接着,标准错误输出重定向(等同于)标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。 实例解析: cmd >a 2>a 和 cmd >a 2>&1 为什么不同? … Continue reading

wiloon, 8/31/2018 10:11

https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/index.html Perf 是用来进行软件性能分析的工具。 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。 最初的时候,它叫做 Performance counter,在 2.6.31 中第一次亮相。此后他成为内核开发最为活跃的一个领域。在 2.6.32 中它正式改名为 Performance Event,因为 perf 已不再仅仅作为 PMU 的抽象,而是能够处理所有的性能相关的事件。

wiloon, 8/30/2018 12:54

https://blog.csdn.net/qq_36874881/article/details/78234005 阻塞方式(需要执行结果) 主要用于执行shell命令,并且返回shell的标准输出 适用于执行普通非阻塞shell命令,且需要shell标准输出的 //阻塞式的执行外部shell命令的函数,等待执行完毕并返回标准输出 func exec_shell(s string) (string, error){ //函数返回一个*Cmd,用于使用给出的参数执行name指定的程序 cmd := exec.Command(“/bin/bash”, “-c”, s) //读取io.Writer类型的cmd.Stdout,再通过bytes.Buffer(缓冲byte类型的缓冲器)将byte类型转化为string类型(out.String():这是bytes类型提供的接口) var out bytes.Buffer cmd.Stdout = &out //Run执行c包含的命令,并阻塞直到完成。 这里stdout被取出,cmd.Wait()无法正确获取stdin,stdout,stderr,则阻塞在那了 err := cmd.Run() checkErr(err) return out.String(), err } 1 2 3 4 5 6 7 … Continue reading

wiloon, 8/29/2018 16:54

https://www.jianshu.com/p/81233f3c2c14 系统的性能很大程度上依赖于cpu 硬件架构的支持。这里记录一下cpu 常见的三大架构的区别 smp SMP (Symmetric Multiprocessing) , 对称多处理器. 顾名思义, 在SMP中所有的处理器都是对等的, 它们通过总线连接共享同一块物理内存,这也就导致了系统中所有资源(CPU、内存、I/O等)都是共享的,当我们打开服务器的背板盖,如果发现有多个cpu的槽位,但是却连接到同一个内存插槽的位置,那一般就是smp架构的服务器,日常中常见的pc啊,笔记本啊,手机还有一些老的服务器都是这个架构,其架构简单,但是拓展性能非常差,从linux 上也能看到: ls /sys/devices/system/node/# 如果只看到一个node0 那就是smp架构 可以看到只有仅仅一个node,经过大神们的测试发现,2至4个CPU比较适合smp架构。 NUMA NUMA ( Non-Uniform Memory Access),非均匀访问存储模型,这种模型的是为了解决smp扩容性很差而提出的技术方案,如果说smp 相当于多个cpu 连接一个内存池导致请求经常发生冲突的话,numa 就是将cpu的资源分开,以node 为单位进行切割,每个node 里有着独有的core ,memory 等资源,这也就导致了cpu在性能使用上的提升,但是同样存在问题就是2个node 之间的资源交互非常慢,当cpu增多的情况下,性能提升的幅度并不是很高。所以可以看到很多明明有很多core的服务器却只有2个node区。 MPP MPP (Massive Parallel Processing) ,这个其实可以理解为刀片服务器,每个刀扇里的都是一台独立的smp架构服务器,且每个刀扇之间均有高性能的网络设备进行交互,保证了smp服务器之间的数据传输性能。相比numa 来说更适合大规模的计算,唯一不足的是,当其中的smp … Continue reading

wiloon, 8/29/2018 16:36

https://stackoverflow.com/questions/11126093/how-do-i-know-if-my-server-has-numa Box 1, no NUMA: ~$ dmesg | grep -i numa [ 0.000000] No NUMA configuration found Box 2, some NUMA: ~$ dmesg | grep -i numa [ 0.000000] NUMA: Initialized distance table, cnt=8 [ 0.000000] NUMA: Node 4 [0,80000000) … Continue reading

wiloon, 8/29/2018 15:06

http://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html 一)概述: 1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作. 2)capability可以作用在进程上(受限),也可以作用在程序文件上,它与sudo不同,sudo只针对用户/程序/文件的概述,即sudo可以配置某个用户可以执行某个命令,可以更改某个文件,而capability是让某个程序拥有某种能力,例如: capability让/tmp/testkill程序可以kill掉其它进程,但它不能mount设备节点到目录,也不能重启系统,因为我们只指定了它kill的能力,即使程序有问题也不会超出能力范围. 3)每个进程有三个和能力有关的位图:inheritable(I),permitted(P)和effective(E),对应进程描述符task_struct(include/linux/sched.h)里面的cap_effective, cap_inheritable, cap_permitted,所以我们可以查看/proc/PID/status来查看进程的能力. 4)cap_effective:当一个进程要进行某个特权操作时,操作系统会检查cap_effective的对应位是否有效,而不再是检查进程的有效UID是否为0. 例如,如果一个进程要设置系统的时钟,Linux的内核就会检查cap_effective的CAP_SYS_TIME位(第25位)是否有效. 5)cap_permitted:表示进程能够使用的能力,在cap_permitted中可以包含cap_effective中没有的能力,这些能力是被进程自己临时放弃的,也可以说cap_effective是cap_permitted的一个子集. 6)cap_inheritable:表示能够被当前进程执行的程序继承的能力.

wiloon, 8/29/2018 13:24

https://www.cnblogs.com/biyeymyhjob/archive/2012/11/03/2751593.html Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal) 管道(pipe) 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 实现机制: 管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循环利用。当管道中没有信息的话,从管道中读取的进程会等待,直到另一端的进程放入信息。当管道被放满信息的时候,尝试放入信息的进程会等待,直到另一端的进程取出信息。当两个进程都终结的时候,管道也自动消失。 从原理上,管道利用fork机制建立,从而让两个进程可以连接到同一个PIPE上。最开始的时候,上面的两个箭头都连接在同一个进程Process 1上(连接在Process 1上的两个箭头)。当fork复制进程的时候,会将这两个连接也复制到新的进程(Process 2)。随后,每个进程关闭自己不需要的一个连接 (两个黑色的箭头被关闭; Process 1关闭从PIPE来的输入连接,Process 2关闭输出到PIPE的连接),这样,剩下的红色连接就构成了如上图的PIPE。 实现细节: 在 Linux 中,管道的实现并没有使用专门的数据结构,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两个 file 结构指向同一个临时的 VFS 索引节点,而这个 VFS 索引节点又指向一个物理页面而实现的。如下图 有两个 file 数据结构,但它们定义文件操作例程地址是不同的,其中一个是向管道中写入数据的例程地址,而另一个是从管道中读出数据的例程地址。这样,用户程序的系统调用仍然是通常的文件操作,而内核却利用这种抽象机制实现了管道这一特殊操作。 关于管道的读写 管道实现的源代码在fs/pipe.c中,在pipe.c中有很多函数,其中有两个函数比较重要,即管道读函数pipe_read()和管道写函数pipe_wrtie()。管道写函数通过将字节复制到 VFS 索引节点指向的物理内存而写入数据,而管道读函数则通过复制物理内存中的字节而读出数据。当然,内核必须利用一定的机制同步对管道的访问,为此,内核使用了锁、等待队列和信号。 当写进程向管道中写入时,它利用标准的库函数write(),系统根据库函数传递的文件描述符,可找到该文件的 file 结构。file 结构中指定了用来进行写操作的函数(即写入函数)地址,于是,内核调用该函数完成写操作。写入函数在向内存中写入数据之前,必须首先检查 VFS 索引节点中的信息,同时满足如下条件时,才能进行实际的内存复制工作: ·内存中有足够的空间可容纳所有要写入的数据; ·内存没有被读程序锁定。 … Continue reading

wiloon, 8/29/2018 10:10

Id mapper is used by NFS to translate user and group ids into names, and to translate user and group names into ids. Part of this translation involves performing an upcall to userspace to request the information. fs.nfs.idmap_cache_timeout 设置idmapper缓存项的最大寿命,单位是秒 https://www.kernel.org/doc/Documentation/filesystems/nfs/idmapper.txt … Continue reading

wiloon, 8/28/2018 19:23

https://zhuanlan.zhihu.com/p/22803683 Epoll,位于头文件sys/epoll.h,是Linux系统上的I/O事件通知基础设施。epoll API为Linux系统专有,于内核2.5.44中首次引入,glibc于2.3.2版本加入支持。其它提供类似的功能的系统,包括FreeBSD kqueue,Solaris /dev/poll等。 Epoll API Epoll API实现了与poll类似的功能:监测多个文件描述符上是否可以执行I/O操作。支持边缘触发ET和水平触发LT,相比poll支持监测数量更多的文件描述符。 poll_create:创建Epoll实例,并返回Epoll实例关联的文件描述符。(最新的epoll_create1扩展了epoll_create的功能) create_ctl:注册关注的文件描述符。注册于同一epoll实例的一组文件描述符被称为epoll set,可以通过进程对应的/proc/[pid]/fdinfo目录查看。 epoll_wait:等待I/O事件,如果当前没有任何注册事件处于可用状态,调用线程会被阻塞。 水平触发LT与边缘触发ET Epoll事件分发接口可以使用ET和LT两种模式。两种模式的差别描述如下。 典型场景: 1 管道(pipe)读端的文件描述符(rfd)注册于Epoll实例。 2 写者(Writer)向管道(pipe)写端写2KB的数据。 3 epoll_wait调用结束,返回rfd作为就绪的文件描述符。 4 管道读者(pipe reader) 从rfd读1KB的数据。 5 下一次epoll_wait调用。

wiloon, 8/28/2018 18:58

https://www.cnblogs.com/dwdxdy/archive/2012/07/25/2608816.html 1.通过read命令完成. read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中. 利用read读取文件时,每次调用read命令都会读取文件中的”一行”文本. 当文件没有可读的行时,read命令将以非零状态退出. 复制代码 1 cat data.dat | while read line 2 do 3 echo “File:${line}” 4 done 5 6 while read line 7 do 8 echo “File:${line}” 9 done < data.dat 复制代码 2.使用awk命令完成 awk是一种优良的文本处理工具,提供了极其强大的功能. 利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据. 1 cat … Continue reading

previous page · next page
辽ICP备14012896