最近GITEE码云域名被停止解析。只能绑hosts了
212.64.62.174 gitee.com
分类目录归档:技术资源
如何跟踪进程的缺页中断【ETW】
———————提取缺页中断的详细信息———————
xperf -tle –i mytrace.etl -o pagefaults.csv -a dumper –provider {3d6fa8d3-fe05-11do-9dda-00c04fd7ba7c} -range time1 time2
例如:
xperf -tle -i Trace.06-18-2018.17-30-42.etl -o pagefaults.csv -a dumper -provider {3d6fa8d3-fe05-11d0-9dda-00c04fd7ba7c} -range 56 68888 #不能是浮点数,以毫秒为单位。
xperf -tle -i Trace.06-18-2018.17-30-42.etl -o pagefaults.csv -a dumper -provider {3d6fa8d3-fe05-11d0-9dda-00c04fd7ba7c} 不设时间,也可以。
#{3d6fa8d3-fe05-11d0-9dda-00c04fd7ba7c}是缺页中断的Provider,它是不变的。
———————第一种方法——————————–
1.以超级管理员打开wprui,这个UI工具是对xpref的一个友好UI管理,特别是内置的优化场景方面,已经足够我们使用。
2.展开【moreOption】选项,选择【ScenarioAnalysis】->【Minifilter I/O activity】。
3.点击开始,然后启动应用,最后停止并保存etl文件,再使用wpa打开,即可以。
———————第二种方法———————————-
1.以超级管理员打开cmd命令行,一定要能正确调用xperf、wpa、wprui等性能检查的命令才行。建议直接用超级管理员打开,vc20xx的命令行如:
Visual Studio Command Prompt (2010)
2.打开xperf的监控命令。
xperf -start -on base
base是一个场景,该场景是包括HARD_FAULTS的检测的。
可以用xperf -providers k检查各检测组。如下所示:
Kernel Groups:
Base : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+MEMINFO+MEMINFO_WS
Diag : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER+COMPACT_CSWITCH
DiagEasy : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER
Latency : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE
FileIO : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+FILE_IO+FILE_IO_INIT
IOTrace : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+CSWITCH
ResumeTrace : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+POWER
SysProf : PROC_THREAD+LOADER+PROFILE
ResidentSet : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+MEMORY+MEMINFO+VAMAP+SESSION+VIRT_ALLOC
ReferenceSet : PROC_THREAD+LOADER+HARD_FAULTS+MEMORY+FOOTPRINT+VIRT_ALLOC+MEMINFO+VAMAP+SESSION+REFSET+MEMINFO_WS
Network : PROC_THREAD+LOADER+NETWORKTRACE
3.启动你要监控的进程如wps或某一棋牌游戏。
4.停止xperf的监控
xperf -stop –d trace.etl #后面的名字随便叫。
5.使用wpa打开trace.etl,正常情况下会显示【SystemActivity】,【Computation】,【Storage】,【Memory】4个图表,其HARD_FAULTS的相关信息,隐藏在【Memory】子图表下。
6.展开Memory子项或双周Memory的标题栏,正常情下会展示3个图表,其中一个是【HardFaults】。
7.HardFaults有3个子项,分别是【count】、【IO by Process】、【Count by Process】,可以在进程列表中选择【FilterToSelection】【ClearSelection】进行只显示或取消显示当前进程。
修改主机名
vim /etc/hostname
VMWare端口映射
在进行kms的例子测试时,发现快速试验kurento的最佳方式就是【kurento-tutorial-java】+【kurento/kurento-media-server】,然而笔记本摄像头在linux中不被支持,故通过VMware把linux中的kms端口映射到主机中。
ssh的反向代理,连接回家庭电脑。
path_script=$(cd "$(dirname "$0")"; pwd)
mode=$1
#公网IP
host_proxy=39.108.x.y
#公网相应主机登录名
host_proxy_user_name=abc
#使用密码方式登录,非免密码方式。需要yum install sshpass软件。
#公网主机的用户密码,免密码方式时为空。
host_proxy_user_pwd=
#需要被登录的家庭主机登录名。
local_user_name=abc
ssh_process=`ps -ef | grep "ssh -fN -R 5022"| grep -v grep`
echo $ssh_process
case "$mode" in
'start')
echo "it's ready to start op...."
if test -n "$ssh_process"; then
echo ""
echo "---the ssh reverse proxy info below"
echo "$ssh_process"
echo ""
else
if [ -z "$host_proxy_user_pwd" ]; then
echo "ssh -fN -R 5022:localhost:22 $host_proxy_user_name@$host_proxy"
ssh -fN -R 5022:localhost:22 $host_proxy_user_name@$host_proxy
else
echo "sshpass -p $host_proxy_user_pwd ssh -fN -R 5022:localhost:22 $host_proxy_user_name@$host_proxy"
#如果使用``方式执行,无法执行它,真是奇怪。
sshpass -p $host_proxy_user_pwd ssh -fN -R 5022:localhost:22 $host_proxy_user_name@$host_proxy
fi
fi
echo 'success to start.'
echo "you can test on proxy host:$host_proxy,use the follow commands "
echo 'netstat -nap | grep 5022'
echo "ssh -p 5022 $local_user_name@localhost"
echo "sshpass -p 123 ssh -p 5022 abc@localhost"
;;
'stop')
echo "it's ready to check process..."
if test -n "$ssh_process"; then
echo "had find ssh rever proxy process informaton"
echo "$ssh_process"
echo $ssh_process | awk '{print ($2)}' | xargs kill -9
fi
echo 'success to kill.'
;;
*)
basename=`basename "$0"`
echo "Usage: $basename {start|stop} [ server options ]"
exit 1
;;
esac
exit 1
vmware的snapshot索引有序
永远保持这两个数据是一致的,则可保持有序。
snapshot.lastUID = “14”,表示下一下snapshot的id的值。
snapshot.current = “14”,表示当前正在使用的uid是那个。
源码备份脚本
\#!/bin/bash
set -x
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
echo "path_script="$path_script
path_waypal=$path_script/waypal.from.101.200.132/waypal
if [ -d $path_waypal ];then
echo "find the directory:$path_waypal"
else
mkdir -p $path_waypal
fi
path_targz=$path_script/waypal.from.101.200.162/waypal_backup_`date +%Y-%m-%d`.tar.gz
path_targztmp=$path_targz'.tmp'
rsync --exclude ".git" -ave ssh ljb@101.200.132:/home/ljb/waypal $path_waypal && tar -cvzf $path_targztmp $path_waypal && mv $path_targztmp $path_targz && rm $path_script/waypal.from.101.200.132/waypal_backup_`date -d '-5 days' +%Y-%m-%d`.tar.gz
git多仓库的提交
#添加github
git remote add origin https://github.com/xxx(仓库地址)
#添加oschina
git remote add oschina https://git.oschina.net/xxxx(仓库地址)
#提交到oschina
git push oschina master(分支名)
#提交到github
git push origin master(分支名)
#从oschina更新
git pull oschina master
#从github更新
git pull origin master
mediawiki的Dockerfile配置
1.sudo docker pull mediawiki
2.sudo docker run –name mediawiki -p 7089:80 -d mediawiki
3.save the LocalSettings.php’s file and copy to mymediawiki/html’s directory.
4.mkdir mymediawiki’s dir
5.write Dockerfile just like bellow.
FROM mediawiki
COPY html/LocalSettings.php /var/www/html/
5.build and run.
sudo docker build -t mymediawiki .
sudo docker run --name mymediawiki -p 7089:80 -d mymediawiki
6.check it.
redmine的启动脚本
Docker守护进程和名字
docker run –name=redmine -it -d
————–
#!/bin/sh
mode=$1
dockerd_current=`ps -ef | grep "dockerd-current"| grep -v grep`
portainer=`ps -ef | grep "/redmine/redmine/config/unicorn.rb"| grep -v grep`
case "$mode" in
'start')
echo "it's ready to start op...."
if test -n "$dockerd_current"; then
echo "---the docker.service had already started.."
else
`sudo systemctl start docker.service`
fi
if test -n "$portainer"; then
echo "---the portainer had already started.."
else
`sudo docker stop /redmine`
`sudo docker rm /redmine`
`sudo docker run --name=redmine -it -d --env='DB_ADAPTER=mysql2' --publish=10083:80 --env='REDMINE_PORT=10083' --env='DB_HOST=192.168.11.130' --env='DB_NAME=redmine_production' --env='DB_USER=redmine' --env='DB_PASS=123456' --volume=/srv/docker/redmine/redmine:/home/redmine/data sameersbn/redmine:3.4.2`
fi
echo 'success to start.'
echo '---1--you can test redmine by way bellow----'
echo 'http://localhost:10083'
echo 'user:admin password:123456'
;;
'stop')
echo "it's ready to check process..."
`sudo systemctl stop docker.service`
echo 'success to kill.'
;;
*)
basename=`basename "$0"`
echo "Usage: $basename {start|stop} [ server options ]"
exit 1
;;
esac
exit 1