0%

说明

以ssh登陆自动输入密码为例

代码

1
2
3
4
#!/usr/bin/expect
spawn ssh -p 1*** pi@***.cn

expect "*password:*" { send "J***\r";interact }
阅读全文 »

介绍

做了一个有几十亿数据,几千万用户,截止目前,数据刚收集没多久。
对内存和cpu的使用率有一点总结。

总结

就像一般服务器的负载原小于核心数才好一样,内存和cpu是重要资源,随着数据的增长可能大幅增加。
在设计算法时,将它们控制在一个较低百分比十分重要。
以我处理的数据为例,5个线程一起跑,要处理的每个文件在2G多,还在持续增长。
在并发处理时,16G的内存能达到90%,这是非常不好的。
经过一些分割处理,将文件减小到原来的1/16,文件数量也增加了16倍。
拿文件数量换了内存空间。

在/etc/vim/vimrc中添加或修改

1
2
3
4
5
6
" add tab space
set ts=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent

程序写完,一堆nil看着难受,以后统一这么写吧

1
2
3
4
5
func FuckErr(err error){
if err!=nil{
panic(err)
}
}

准备工作

切换到root。
没有的文件自己创建新的。

创建或修改rc-local.service

vim /etc/systemd/system/rc-local.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit] 
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
阅读全文 »

目标

实现指定个核心最大化使用,比如核心总数减一。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main
import (
"runtime"
"sync"
)
var (
cpunum = runtime.NumCPU()-1
)
func main(){
ch := make(chan string)
runtime.GOMAXPROCS(cpunum)
wg := sync.WaitGroup{}

for i := 0; i < cpunum; i++{
go WgReadLogs(ch, &wg)
}

wg.Add(2)
ch <- "./health/stat1.rec"
ch <- "./report/stat2.rec"
wg.Wait()
close(ch)
}
func WgReadLogs(ch chan string,wg *sync.WaitGroup){
for true{
tmp,ok := <-ch
if !ok{
break
}
ReadLogs(tmp)
wg.Done()
}
}
func ReadLogs(logname string){
fmt.Println(logname)
}
阅读全文 »

安装pyperclip库

1
pip3 install pyperclip

安装xclip

1
sudo apt install xclip

和粘贴板交互

1
2
3
4
5
import pyperclip
# 复制到粘贴板
pyperclip.copy('test')
# 从粘贴板复制
pyperclip.paste()

起因

今天在使用xstart时导致,xUbuntu重启后循环跳出输密码界面,无法进入桌面。

解决方法

ctrl + alt + F1进入终端
删除用户主目录下的.Xauthority

原因

每次用户登录的时候都要读取对应.Xauthority的信息,
我之前的操作导致其权限发生变化,这点在删除时就可以看到。
删除后重启正常进入桌面。

对比

相对于点对点传输,心跳机制是一种更好实现的近似替代。

优缺点

心跳机制,优点是稳定好实现,缺点是没点对点快,对带宽对服务器性能都有要求。

总结

以后的开发中,心跳可以作为基础,快速实现。点对点作为升级功能,但使用时优先级更高的功能。

指令

1
2
3
root@h2-B85M-D2V-SI:~# nvidia-smi -q | grep Product
Product Name : GeForce RTX 2070 SUPER
Product Brand : GeForce