赞
踩
curl ifconfig.me
ip addr
top
有两个JAVA进程,采用下述命令判断具体是哪个java进程
ps -p <PID> -o command
head -n 100 filename
tail -n 10 log4i.log
grep 'fail\|error' a.txt
查看文件夹
ls -lh data/
查看具体文件
ps aux|grep Main
netstat -anp |grep 8000
netstat -ano |findstr "49823"
taskkill /f /t /im "11980"
sudo tar zxvf go1.17.5.linux-amd64.tar.gz
解压.GZ结尾的压缩包
gunzip xxxx.gz
vi后,输入/+关键字
再回车,即可跳转对应关键字位置处
vi后,输入gg
跳转开头,再输入dG
清屏,再输入:set paste
进入粘贴模式,之后insert
进入编辑模式,粘贴后,:wq
保存退出
不保存
:q!
保存
:wq
rm -rf 文件名
rm -rf 目录名
cp -r /home/packageA/* /home/cp/packageB/
# !/bin/sh cd www/wwwroot/my-admin-gin echo "开始拉取最新代码" echo `git pull` name="my-admin-gin" echo "进程名: $name" # 获取相关进程id并杀死进程 id=`ps -ef | grep "$name" | grep -v grep | awk '{print $2}'` echo "已杀死$name进程pid:$id" kill -9 $id cd server/ #以后台守护进程的方式运行server端 nohup ./$name > $name.log 2>&1 & cd ../web echo "正在打包前端文件,耗时估计2min,请耐心等待..." echo `npm run build` cd ../server #显⽰⽂件最后10⾏ cat $name.log | tail -n 15 exit 0
每日一条-> https://blog.csdn.net/weixin_53601359/article/details/115553449?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165485295016782246489716%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165485295016782246489716&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-115553449-null-null.142v13pc_search_result_control_group,157v14control&utm_term=sql%E4%BC%98%E5%8C%96&spm=1018.2226.3001.4187
查询SQL尽量不要使用select *,而是具体字段
避免在where子句中使用or来连接条件
尽量使用数值替代字符串类型
使用explain分析你SQL执行计划
索引不适合建在有大量重复数据的字段上
where中使用默认值代替null
高级SQL优化
批量插入性能提升
复合索引最左特性
inner join 、left join、right join,优先使用inner join
尽量使用union all替代union
每日一条->
fiddler实现请求转发到本地,测试神器
FiddlerObject.log(“oSession.host :”+oSession.host );
// 判断host是否为*** 并且路径是否包含***
if(oSession.host == ‘api.imbeiyu.com’){
//转发配置
oSession.host = ‘127.0.0.1:8082’;
}
if (oSession.isHTTPS) {
// 修改协议,把 https 修改为 http ,因为局域网是http,https访问不到
oSession.oRequest.headers.UriScheme = “http”
}
每日一条 :
https://blog.csdn.net/weixin_41231928/article/details/107040880
rebase和merge区别
https://blog.csdn.net/qq_30285985/article/details/124094098 场景3
所有node进程 pm2 list
停止进程 pm2 stop
个人配置文件举例
user www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; #include luawaf.conf; include proxy.conf; default_type application/octet-stream; server_names_hash_bucket_size 512; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server_tokens off; access_log off; #静态资源加 监听59661端口 server{ listen 59661; server_name 82.157.137.212; root /usr/local/company_note/; index index.html index.htm; } server { listen 80; server_name 82.157.137.212; index index.html index.htm index.php; root /www/wwwroot/my-admin-gin/web/dist; #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } location /api { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; rewrite ^/api/(.*)$ /$1 break; #重写 proxy_pass http://127.0.0.1:45627; # 设置代理服务器的协议和地址 } access_log /www/wwwlogs/access.log; } include /www/server/panel/vhost/nginx/*.conf; }
kctcl --version
验证下是否安装成功ktctl connect -n loveher
本地连接k8s集群指定nameSpace,命令需在管理员权限授权的cmd中进行kubectl get po -n loveher
可以在pods中看到多个kt-connect的工具kubectl get po,svc -n friend
获取k8s集群中的pods,其中 ClusterIP为serviceIp,具体概念去上方文档翻阅kubectl get secrets -n loveher
kubectl get secrets -n loveher yidun-secrets -oyaml
上方的是base64加密过的,需要base64解密后才是原文
java: 找不到符号 符号: 变量 log
idea省电模式
结论: 能,但读的是之前没改过的数据
表结构
开启一个事务a,执行更新操作
set autocommit=0;
update lock_learn set name='t' where id=1;
select *from lock_learn where id=1;
查询结果
为什么上了写锁,别的事务还可以读操作?
因为InnoDB有MVCC机制(多版本并发控制),可以使用快照读,而不会被阻塞。
如果想在update 某行时,其他事务在读取此行时阻塞该怎么办呢?
可以在查询时加个读锁
一个线程执行插入操作时只会建立一个连接,但多个线程执行插入操作时会建立多个连接,这个过程可以通过processlist看到; 很明显建立连接的操作是由程序的第三方框架控制的,非自己
MySQL安装在云服务器上,连接是在个人电脑windows上建立
单个线程插入循环插入1000条数据耗时1m多,如果连接是在云服务器本地建立的,这个过程可能会更快
但如果是批量插入的话耗时明显更少,连1s都不到,效率翻了60多倍,如果再加上多线程插入,效率还可以再翻个几倍,大概200倍是没问题的
起了100个线程,每个线程只负责批量插入1w条数据,耗时统计大概5min,cpu最高彪30%,平均在10%; 之前只起了1个线程,插入1w数据,耗时14s; 理论上我开100个线程,插入100w数据也是14s才对,但结果看起来不是这样的,看来跟云服务器的硬件配置有关,及时我开00个线程,但云服务那边配置跟不上,也不行, 测试过程中MySQL的连接来到了100个,云服务器那边的监控在此
代码附带:
func main() { // 连接数据库 // 自动迁移 schema db.AutoMigrate(&Test{}) //统计耗时 start := time.Now() var wg sync.WaitGroup for i := 0; i < 100; i++ { wg.Add(1) go insert(db,1000,10,&wg) } wg.Wait() print("多线程100个线程批量插入100w条数据耗时:" + time.Since(start).String() + "") fmt.Println("插入成功") } func insert(db *gorm.DB,limit int,loopOut int,wg *sync.WaitGroup){ defer wg.Done() users:=make([]Test,limit*loopOut) for i := 0; i < loopOut*limit; i++ { // 批量创建记录 users[i]=Test{Name: "test", CreateTime: time.Now()} } db.Create(&users) }
MySQL在云端,表的列仅这三列,数据硬盘存储大概占用7.9mb,本地导出这些数据大概耗时24s
配置16g,测试最大开启线程/协程数
java可以开启到4000多条(验证过的),go可以开启到100w条(未验证)
前置相关
只跟应用关联,不同应用的用户OpenID不一样
跟开放平台关联,同一开放平台下不同应用的用户UnionID一样;如果换了一个新的开放平台,那新开放平台下不同应用的用户UnionID则就不一样
docker exec -it nuannuan-app-server /bin/bash
cd /opt/arthas
java -jar arthas-boot.jar
stop
还原JAVA附加类工作原理
此处我想要筛选出’ip属地’ 不为中国的行
之后点击确定,就行了
ctrl+g
左下方点击m2
在内存查看窗口 鼠标右键->查找->地址
鼠标右键,点击注释
鼠标右键->查找->定义的注释
眼见不一定为实,需要验证
找基址
若是存在1级或更高级偏移,如下图思路
先找到基址,再通过基址获取基址上的地址,这张图里是1级偏移,获取地址后再加上偏移量就得到真正数据的地址啦
显示格式: 从上至下地址间相差32字节,从左往右以此相差4字节,上边的D1,D5是以第一行地址显示的,假设第一行地址换成 22223BDC4F1,那D1,D5就会显示为F1,F5这样的
从区域图里也可以看到一个英文字符占一个字节,比如test1字符占据了22223BDC651-22223BDC655这段内存,用了8个字节内存
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。