问题 提示丢失 VCRUNTIME140.DLL 解决方案 简介分析:建立装时,需要C++应用的必要组件, 去微软官网下载安装程序,安装就可以了。有64位版和32位版,根据计算机配置进行下载,下面是下载链接: 64位版下载地址:http://download.microsoft.com/download/9/E/1/9E1FA77A-9E95-4F3D-8BE1-4D2D0C947BA2/enu_INREL/vcredistd14x64/vc_redist.x64.exe 32位版下载地址:http://download.microsoft.com/download/9/E/1/9E1FA77A-9E95-4F3D-8BE1-4D2D0C947BA2/enu_INREL/vcredistd14x86/vc_redist.x86.exe from:https://blog.csdn.net/qq_41204464/article/details/93408593
View DetailsMemcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。 Memcached由Danga Interactive开发,其最新版本发布于2010年,作者为Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal . com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。 一、下载Memercached For Windows 下载地址://www.jb51.net/softs/44843.html 二、安装步骤 1、解压到指定目录,如:C:\Memcached\memcached-win32-1.4.4-14。 2、用cmd打开命令窗口,转到解压的目录,输入 “memcached.exe -d install”。 3、打开控制面板,打开服务,可以看到memcached已经在上面可,如果没有启动,则手动启动一下。 4、 使用telnet命令 验证缓存服务器是否可用。 开始什么都不显示,回车后输入命令 stats 查看统计信息,如下图,说明服务器运作正常。 三、参数介绍 1、 以上的安装和启动都是在默认环境下进行的,在安装时可设置如下参数: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份运行 (仅在以root运行的时候有效) -m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助 如:“memcached -d install -l 127.0.0.1 -m 1024 -c2048”。 2、 如果在安装时没有添加参数,可通过修改注册表信息进行设置,打开注册表,找 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached 在其中有一个“ImagePath”项,值为: "C:\Memcached\memcached-win32-1.4.4-14\memcached.exe" -d runservice 在后面加上“-m 1024 -c2048”。如下图: 3、输入stats命令后,页面出现的参数介绍。 STAT pid 4356 服务器进程IDSTAT uptime […]
View Details1.概述--美观、强大的可视化监控指标展示工具 grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。最好的参考资料就是官网(http://docs.grafana.org/),虽然是英文,但是看多了就会啦。 1.1基本概念 Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。 官方支持以下数据源:Graphite,Elasticsearch,InfluxDB,Prometheus,Cloudwatch,MySQL和OpenTSDB等。 每个数据源的查询语言和能力都是不同的。你可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源,它就属于一个特定的组织。 支持的数据源 DashBoard:仪表盘,就像汽车仪表盘一样可以展示很多信息,包括车速,水箱温度等。Grafana的DashBoard就是以各种图形的方式来展示从Datasource拿到的数据。 Row:行,DashBoard的基本组成单元,一个DashBoard可以包含很多个row。一个row可以展示一种信息或者多种信息的组合,比如系统内存使用率,CPU五分钟及十分钟平均负载等。所以在一个DashBoard上可以集中展示很多内容。 Panel:面板,实际上就是row展示信息的方式,支持表格(table),列表(alert list),热图(Heatmap)等多种方式,具体可以去官网上查阅。 Query Editor:查询编辑器,用来指定获取哪一部分数据。类似于sql查询语句,比如你要在某个row里面展示test这张表的数据,那么Query Editor里面就可以写成select *from test。这只是一种比方,实际上每个DataSource获取数据的方式都不一样,所以写法也不一样(http://docs.grafana.org/features/datasources/),比如像zabbix,数据是以指定某个监控项的方式来获取的。 Organization:组织,org是一个很大的概念,每个用户可以拥有多个org,grafana有一个默认的main org。用户登录后可以在不同的org之间切换,前提是该用户拥有多个org。不同的org之间完全不一样,包括datasource,dashboard等都不一样。创建一个org就相当于开了一个全新的视图,所有的datasource,dashboard等都要再重新开始创建。 User:用户,这个概念应该很简单,不用多说。Grafana里面用户有三种角色admin,editor,viewer。admin权限最高,可以执行任何操作,包括创建用户,新增Datasource,创建DashBoard。editor角色不可以创建用户,不可以新增Datasource,可以创建DashBoard。viewer角色仅可以查看DashBoard。在2.1版本及之后新增了一种角色read only editor(只读编辑模式),这种模式允许用户修改DashBoard,但是不允许保存。每个user可以拥有多个organization。 dashboard界面最上面一行解释 界面顶部标题标注 上图显示了信息中心的顶部标题。 1侧面菜单切换:切换侧边菜单,允许您专注于仪表盘中显示的数据。侧面菜单提供对与仪表盘无关的功能(如用户,组织和数据源)的访问。 2信息中心下拉菜单:此下拉菜单显示您当前正在查看的信息中心,并允许您轻松切换到新的信息中心。从这里,您还可以创建新的信息中心,导入现有的信息中心和管理信息中心播放列表。 3星型仪表盘:对当前仪表盘执行星号(或取消星标)。加星标的信息中心在默认情况下会显示在您自己的主页信息中心上,并且是标记您感兴趣的信息中心的便捷方式。 4共享仪表盘:通过创建链接或创建其静态快照来共享当前仪表盘。在共享前确保信息中心已保存。 5保存仪表盘:当前仪表盘将与当前仪表盘名称一起保存。 6设置:管理仪表盘设置和功能,如模板和注释。 2.全面瓦解 对于grafana的部署,网上一搜一大把,这里不作累赘,可参考(grafana官网安装说明、grafana酷炫图表),继续以下内容。 2.1登录grafana 要运行Grafana,请打开浏览器并转到http://localhost:3000/,如果你尚未配置不同的端口,则3000是Grafana监听的默认http端口。默认用户名为admin,默认密码为admin。当你第一次登录时,系统会要求你更改密码,我们强烈建议你遵循Grafana的最佳做法并更改默认管理员密码,你可以稍后转到用户首选项并更改你的用户名。 登录界面,可看到版本号 2.2数据源配置 按照前面的数据源,这里讲解几个我们常使用的数据源的配置,包括es、opentsdb、influxdb和zabbix,也可以新增其他的数据源。 常用数据源示例 opentsdb数据源配置示例 其中关于Access这里具体解释下:Server (default) = 需要从Grafana后端/服务器访问,Browser = 需要从浏览器访问,对应上面的url。 es数据源配置示例 influxdb数据源配置示例 2.3仪表盘配置 在配置好所使用的数据源之后,即可新增配置自己的面板。面板也存在多种: 仪表盘 这里选取graph为例,如下图所示,新增或配置仪表盘。右上角的红框中表示:新建、标星、分享、保存、设置、查询模式、时间段、缩小(针对时间段进行放宽,即小时间段换成了大时间段)、刷新等 新增仪表盘或编辑已有仪表盘 Graph里面的选项有:General(常规选择)、Metrics(指标)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Alert(告警)、Time range(时间范围) (1)General(常规选择:http://docs.grafana.org/features/panels/graph/) 常规选择 General允许定制面板的外观和菜单选项。 General Options Title:仪表盘上的面板标题 Description:仪表盘描述信息 Transparent :是否透明,选择之后会把该图的背景去掉,即透明状态 Repeat panel:是否重复panel,填写是重复的变量(参考后文3.2变量配置),即这个标题名中添加对应的变量,引用该变量需添加$,图标题即可随着自选的变量而变化。 钻取/详细信息链接 Drilldown / detail link(为当前panel增加超链接) Drilldown项允许在面板添加动态链接,可以链接到其他的dashboards或urls。 每个链接都有一个title,一个type和params。链接可以是dashboard,或是绝对链接。如果是dashboard链接,则dashboard值必须是仪表盘的名称。如果它是一个绝对链接,URL就是链接的URL。 params允许添加额外的URL参数的链接。格式是name=value,多种参数用&分隔。模板变量可以作为使用$ myVar作为值。 当连接到另一个Dashboard使用的模板变量,你可以使用var-myVar =value 填充模板变量所需的值从链接。 (2)Metrics(指标) metrics页签定义要呈现的系列数据和源。每个数据源提供不同的选择(参考官网)。这里以opentsdb数据源为例: 指标 Data Source:数据源,在前面配置好数据源之后,在这里直接选择对应的数据源 查询A、B:可以根据情况进行新增或删除 metric:指标名,输入部分指标名,会自动查询匹配,可以快速进行选择 […]
View DetailsLinux chkconfig命令用于检查,设置系统的各种服务。 这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。 语法
1 |
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] |
参数: --add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。 --del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。 --level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。 实例 列出chkconfig所知道的所有命令。
1 |
# chkconfig -list |
开启服务。
1 2 |
# chkconfig telnet on //开启Telnet服务 # chkconfig --list //列出chkconfig所知道的所有的服务的情况 |
关闭服务
1 2 |
# chkconfig telnet off //关闭Telnet服务 # chkconfig -list //列出chkconfig所知道的所有的服务的情况 |
from:https://www.runoob.com/linux/linux-comm-chkconfig.html
View DetailsDownload VMMap (626 KB) Run now from Sysinternals Live. Introduction VMMap is a process virtual and physical memory analysis utility. It shows a breakdown of a process’s committed virtual memory types as well as the amount of physical memory (working set) assigned by the operating system to those types. Besides graphical representations of memory usage, VMMap also shows summary information and a detailed process memory map. Powerful filtering and refresh capabilities allow you to identify the sources of process memory usage and the memory cost of application features. Besides flexible views […]
View Details第一种开机执行命令法: 直接修改/etc/rc.d/rc.local文件 编辑文件/etc/rc.d/rc.local vi /etc/rc.d/rc.local 比如要将zookeeper添加为开机自启动就在最后加上“/usr/local/zookeeper-3.4.5/bin/zkServer.sh start” 配置好之后,重启centos,会发现命令被执行了。前提条件是当前机器环境变量中有java命令即$JAVA_HOME/bin的路径,否则zookeeper也启动不了。 Bash
1 2 3 4 5 6 7 8 9 10 11 |
[root@zookeeper ~]# vim /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local # /usr/local/zookeeper-3.4.5/bin/zkServer.sh start |
第二种服务自启动法: 这次换个jetty吧 1、进入到/etc/rc.d/init.d目录下,新建一个jetty脚本 Bash
1 |
vi /etc/rc.d/init.d/jetty |
将以下脚本写入文件中,可以看出这是一个case语句判断,当我们使用"service jetty start"启动服务的时候"start"参数就会变成$1传入下面的脚本,从而做出对应的操作。 # chkconfig: 345 99 99 (这个比较有意思,345代表在设置在那个level中是on的,如果一个都不想on,那就写一个横线"-",比如:chkconfig: – 99 99。后面两个数字当然代表S和K的默认排序号啦,基本都写99,排后面启动安全保险) Bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash #chkconfig: 345 99 99 #description:jetty server #processname:jetty JETTY_HOME=/app/jetty9_4_8 case $1 in start) su root $JETTY_HOME/bin/jetty.sh start;; stop) su root $JETTY_HOME/bin/jetty.sh stop;; check) su root $JETTY_HOME/bin/jetty.sh check;; restart) su root $JETTY_HOME/bin/jetty.sh restart;; *) echo "require start|stop|check|restart" ;; esac |
2、最后保存jetty文件后别忘了设置文件的执行权限 Bash
1 |
chmod +x jetty |
3、至此服务已经创建好了,可以用"service jetty start"来启动jetty了,但我们要设置自启动还需要添加到chkconfig来管理 Bash
1 2 3 |
chkconfig --add jetty chkconfig --list jetty |
看到3是启动状态就说明在文本界面启动方式下该服务已经设置为自启动了,5是图形化界面 如果不是启动状态需要用命令开启自启动 Bash
1 2 3 |
chkconfig --level 345 jetty on chkconfig --list jetty |
这样就没问题了。 from:https://blog.csdn.net/e_wsq/article/details/79885180
View Details一、CentOS7添加自定义脚本服务说明 在CentOS7下,已经不再使用chkconfig命令管理系统开机自启动服务和条件自定义脚本服务了,而是使用管理unit的方式来控制开机自启动服务和添加自定义脚本服务。在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等。这里介绍自定义脚本服务,如果想把自定义的脚本变成服务进程,都需要写对应的service配置文件,这样才能被unit所管理(注意:自定义开机自启动服务的.service配置文件必须放在/usr/lib/systemd/system这个目录下面)。服务类别又分为服务又分为系统服务(system)和用户服务(user)。 系统服务:开机不登陆就能运行的程序(常用于开机自启)。 用户服务:需要登陆以后才能运行的程序。 二、编写.service配置文件说明 1、[unit]区块:设置管理启动顺序与依赖关系 Description=服务描述 给出当前服务的简单描述 Documentation=路径或url 给出文档位置 After=服务.target或服务.service 定义在某些服务之后启动。例如sshd服务启动必须在network.target sshd-keygen.service服务开启之后才能启动,可以使用如下命令查看sshd服务的配置 cat /usr/lib/systemd/system/sshd.service Before=服务.target 定义在某些服务之前启动 Wants=服务.service 弱依赖,表示等号填写服务启动或失败,不影响此配置文件服务的启动 Requires=服务.service 强依赖,表示等号填写服务启动或失败,那么此配置文件的服务将启动失败 注意:如果After、Before、Wants、Requires等号后面需要填写多个服务可以用空格隔开。After和Before字段只涉及启动顺序,不涉及依赖关系。Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。 2、[Service]区块:设置启动行为 •启动命令 ExecStart=命令 定义启动进程时执行的命令 ExecReload=命令 重启服务时执行的命令 ExecStop=命令 停止服务时执行的命令 ExecStartPre=命令 启动服务之前执行的命令 ExecStartPost=命令 启动服务之后执行的命令 ExecStopPost=命令 停止服务之后执行的命令 所有的启动设置之前,都可以加上一个连词号(-),表示"抑制错误",即发生错误的时候,不影响其他命令的执行。例如:ExecStop=-/bin/sh /server/scripts/xx.sh •启动类型 Type字段定义启动类型。它可以设置的值如下: simple(默认值) ExecStart字段启动的进程为主进程 forking ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程(后台运行) oneshot 类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务 dbus 类似于simple,但会等待 D-Bus 信号后启动 notify 类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务 idl 类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合 •重启行为 KillMode字段,定义Systemd如何停止服务,它可以设置的值如下 control-group(默认值) 当前控制组里面的所有子进程,都会被杀掉 process 只杀主进程 mixed 主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号 none 没有进程会被杀掉,只是执行服务的 stop 命令 Restart字段,定义了服务退出后,Systemd的重启方式,它可以设置的值如下 no(默认值) 退出后不会重启 on-success 只有正常退出时(退出状态码为0),才会重启 on-failure 非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启 on-abnormal 只有被信号终止和超时,才会重启 on-abort 只有在收到没有捕捉到的信号终止时,才会重启 on-watchdog 超时退出,才会重启 always 不管是什么退出原因,总是重启 •service区块的其他一些字段 […]
View Details在写shell脚本的时候发现cd切换目录的时候无法切换,代码是下面的。
1 2 3 4 5 6 7 |
#!/bin/bash #changedir.sh cd /home/firefox pwd |
我仔细一想,我执行的时候是./changedir.sh来执行的,这样执行的话终端会产生一个子shell,子shell去执行我的脚本,在子shell中已经切换了目录了,但是子shell一旦执行完,马上退出,子shell中的变量和操作全部都收回。回到终端根本就看不到这个过程的变化。那么怎么验证上面的猜想呢?看下面的代码
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash #changedir.sh history cd /home/firefox sleep 1 pwd |
首先按照 ./changedir.sh执行,这时候终端没有切换目录,history执行的结果是空的,说明子shell里面没有历史命令(这是肯定的)。然后按照 source changedir.sh执行,这时候就是直接在终端的shell执行脚本了,没有生成子shell,执行的结果就是输出历史命令,并且切换了目录。 from:https://blog.csdn.net/firefoxbug/article/details/7317279
View Details在生产环境下启动Weblogic时,发现原来好好的nohup信息输出到指定文件中的功能,突然出问题了。现象是控制台输出的信息一部分输出到了我指定的文件,另一部分却输出到了nohup.out,而我是不想让它产生nohup.out文件,不知道是什么原因。 我的启动命令是这样的: nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out &现在指行这个命令,会给我产生两个文件,一个中logs/myserver.out,另一个是nohup.out文件。 怎样才能让它不产生nohup.out文件呢。 网上搜了半天,据说好象可以把后面的 “&” 改成 “2>&1 &”,于是把启动命令改成如下: nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out 2>&1 &再次执行,问题解决。 解释如下: 2> 表示把标准错误(stderr)重定向,标准输出(stdout)是1。 尖括号后面可以跟文件名,或者是&1, &2,分别表示重定向到标准输出和标准错误。 2> &1 1> &2 2> stderr.log 1> stdout.log from:https://www.xuebuyuan.com/2205812.html?mobile=0
View Details