金沙澳门官网网址_金沙国际登陆

欢迎加入金沙澳门官网网址体验更多不一样的精彩.,金沙国际登陆提供最丰厚回馈!,因为金沙澳门官网网址这里的游戏是多种多样的,为大家打造一个最专业的化的超级五星酒店。

金沙澳门官网网址 > 服务器运维 > 故障诊断,Java运行环境之

原标题:故障诊断,Java运行环境之

浏览次数:174 时间:2019-10-08

三、Java运行环境之 cent os6.8 64位安装nginx,os6.8nginx

文章转载:

根据工作需要,现在需要安装nginx服务器,本来可以直接安装别人制作好的rpm包的,但是本着爱折腾和时刻尝鲜的精神,我决定从官网下载最新的nginx源码来安装,下面记录了我的安装过程。

下面的安装假定是以root用户登录并执行
1.安装依赖库
这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 
yum -y install make gcc gcc-c++ glibc glibc-devel lsof   
yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl--devel 

2.下载源码包
cd /usr/local/src
wget -d ""
tar zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_realip_module --with-http_ssl_module 
make -j 4
make install

3.验证性启动nginx
注意,在没有设置nginx为系统服务之前,这里仅是验证性的启动测试。使用下面的命令查看nginx可执行程序的路径
whereis nginx
一般默认在/usr/local/nginx目录下面
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx

4.添加nginx为系统服务
添加如下文件

vim /etc/init.d/nginx

[html] view plain copy

  1. #!/bin/sh  
  2. #  
  3. # nginx - this script starts and stops the nginx daemon  
  4. #  
  5. # chkconfig:   - 85 15  
  6. # description: Nginx is an HTTP(S) server, HTTP(S) reverse   
  7. #               proxy and IMAP/POP3 proxy server  
  8. # processname: nginx  
  9. # config:      /etc/nginx/nginx.conf  
  10. # config:      /etc/sysconfig/nginx  
  11. # pidfile:     /var/run/nginx.pid  
  12. # Source function library.  
  13. . /etc/rc.d/init.d/functions  
  14. # Source networking configuration.  
  15. . /etc/sysconfig/network  
  16. # Check that networking is up.  
  17. [ "$NETWORKING" = "no" ] && exit 0  
  18. nginx="/usr/local/nginx/sbin/nginx"  
  19. prog=$(basename $nginx)  
  20. NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"  
  21. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx  
  22. lockfile=/var/lock/subsys/nginx  
  23. start() {  
  24.     [ -x $nginx ] || exit 5  
  25.     [ -f $NGINX_CONF_FILE ] || exit 6  
  26.     echo -n $"Starting $prog: "  
  27.     daemon $nginx -c $NGINX_CONF_FILE  
  28.     retval=$?  
  29.     echo  
  30.     [ $retval -eq 0 ] && touch $lockfile  
  31.     return $retval  
  32. }  
  33. stop() {  
  34.     echo -n $"Stopping $prog: "  
  35.     killproc $prog -QUIT  
  36.     retval=$?  
  37.     echo  
  38.     [ $retval -eq 0 ] && rm -f $lockfile  
  39.     return $retval  
  40. killall -9 nginx  
  41. }  
  42. restart() {  
  43.     configtest || return $?  
  44.     stop  
  45.     sleep 1  
  46.     start  
  47. }  
  48. reload() {  
  49.     configtest || return $?  
  50.     echo -n $"Reloading $prog: "  
  51.     killproc $nginx -HUP  
  52. RETVAL=$?  
  53.     echo  
  54. }  
  55. force_reload() {  
  56.     restart  
  57. }  
  58. configtest() {  
  59. $nginx -t -c $NGINX_CONF_FILE  
  60. }  
  61. rh_status() {  
  62.     status $prog  
  63. }  
  64. rh_status_q() {  
  65.     rh_status >/dev/null 2>&1  
  66. }  
  67. case "$1" in  
  68.     start)  
  69.         rh_status_q && exit 0  
  70.     $1  
  71.         ;;  
  72.     stop)  
  73.         rh_status_q || exit 0  
  74.         $1  
  75.         ;;  
  76.     restart|configtest)  
  77.         $1  
  78.         ;;  
  79.     reload)  
  80.         rh_status_q || exit 7  
  81.         $1  
  82.         ;;  
  83.     force-reload)  
  84.         force_reload  
  85.         ;;  
  86.     status)  
  87.         rh_status  
  88.         ;;  
  89.     condrestart|try-restart)  
  90.         rh_status_q || exit 0  
  91.             ;;  
  92.     *)      
  93.       echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"  
  94.         exit 2  
  95. esac  

chmod +x /etc/init.d/nginx
注册 nginx 服务
chkconfig --add nginx
chkconfig --list nginx
假如查看到nginx服务在各种级别下,都没有打开,可以再次使用下面的命令明确指出在不同级别下打开:
chkconfig --level 2345 nginx on
再次采用
chkconfig --list nginx
查看,是否在上述各级别下已经打开。这里之所以要如此强调,是希望在断电后nginx服务能自动重启。

4.修改配置文件nginx.conf

主要是根据业务逻辑来配置nginx.conf,这里忽略具体内容

配置完成后,重新测试并加载nginx.conf
service nginx configtest
service nginx reload
让nginx在新的配置下运行就可以了

5.安装中出现的问题和错误
因为nginx.conf中出现问题,显示错误如下:
nginx: [emerg] unknown directive "lua_shared_dict" in /usr/local/nginx/conf/nginx.conf:11

nginx: [emerg] unknown directive "rewrite_by_lua_file" in /usr/local/nginx/conf/nginx.conf:136

解决方法

这两个报错,是因为nginx.conf中添加了这两个指令,将对应配置及逻辑删除就可以了。

参考链接

我暂时将它们注释掉    


0


0

查看评论

cent os6.8 64位安装nginx,os6.8nginx 文章转载: 根据工作需要,现在需要安装nginx服...

故障诊断 | 系统级追踪诊断方法及案例分享,故障诊断案例

点击上方蓝色文字关注↑↑↑↑↑

所谓操作系统,是应用程序与服务器硬件进行沟通的中间层。应用程序的所有操作,都是和操作系统进行沟通交互。操作系统负责将所有交互转化为设备语言,进行硬件交互。

我们在进行Oracle故障调试和内核原理工作的时候,经常需要了解后台运行的动作和细节。一些故障场景,如ORACLE后台进展慢、程序无法启动、无法登陆、相同环境执行结果却大不相同等问题,就需要操作系统级别监控,检查定位问题。

Oracle自身已经提供了很多这类型的工具,如oradebug、各种等待事件和跟踪方式。此外,各类型的操作系统提供出很多系统级别工具,帮助我们进行监控。

 

我们先来看一个简单的示例:

LGWR进程写 online redo log是否用到缓存?

这里的这个缓存不是指数据库缓存,操作系统的文件缓存,如果对这个问题不明白,我们先看另外一个问题,我们如果怀疑存储有问题,经常会使用DD命令对磁盘进行测试,相关命令如下所示,那这个命令对磁盘的操作是直接写磁盘还是把数据写到文件缓存里去?

我们来实地进行测试验证看一下,这是在我电脑虚拟机上的一个测试结果,DD了2G的文件,花了4.99秒的时间,实际上这个命令结束的时候数据没真正写到磁盘上去,对于磁盘的写到缓存就返回了。我们另外看一条命令

这里加了一个标志,就是ofag=sync,加完这个标示之后,我们发现写磁盘的速度下降了,写2G的文件花了8秒,多用了60%的时间。这就是文件系统缓存的作用,文件系统缓存大大增加了主机的性能。

我们现在回到之前那个问题,LGWR进程写redo log 会不会用到缓存呢?我们使用strace –p命令来跟踪LGWR进程,为方便观察我们添加一组新的redo日志组并进行切换。

通过分析TRACE信息我们发现,LGWR进程对online redo log打开使用了o_sync标示,该标示表示直接写入存储设备。

TRUSS/TUSC/STRACE是什么?

下面我引用一下TRUSS的官方解释,TUSC与STRACE工具功能基本一样。

它是一个在系统层处理复杂问题非常有用的工具,用来跟踪一个进程的系统调用或者信号产生的情况。适用于不同的系统环境。

它们适用于不同的Unix环境:

•      Truss : AIX,Solaris

•      Tusc  :HP-Unix(需单独安装)

•      Strace:Linux

Truss常用参数介绍

参数 介绍
-a
显示在每一执行系统调用中传递的参数字符串。
-c 计数跟踪系统调用、故障和信号而不是逐行显示跟踪结果。跟踪命令终止或 truss 中断时生成摘要报告。若还使用 -f 标志,计数包含所有跟踪的系统调用、故障和子进程信号。
-d 每行输出包含时间戳记。时间从跟踪开始以每秒显示。跟踪输出的第一行显示测量单个时间戳记的基本时间。缺省不显示时间戳记。
-D 每行输出显示增量时间。增量时间表示从由该线程引起的最后报告事件起计时引起事件的 LWP 的逝去时间。缺省不显示增量时间。
-e 显示在每一执行系统调用中传递的环境字符串。
-f 跟在 fork 系统调用产生的所有子进程之后,并包含跟踪输出中的信号、故障和系统调用。 通常,仅跟踪第一级命令和进程。如果指定 -f 标志,进程标识与每行跟踪输出一起显示哪个进程执行系统调用或接收信号。
-l 显示有关 LWP 进程的标识(线程标识)及 truss 输出。输出中缺省不显示 LWP 标识。
-o 指定用于跟踪输出的文件。缺省时输出指向标准错误。
-p 将参数作为一列现存进程的进程标识而不是要执行的命令解释到 truss。 倘若进程用户标识或组标识与用户的用户标识或组标识匹配或者用户是特权用户,truss 控制并开始跟踪每个进程。

Tusc常用参数介绍

Strace常用参数介绍

参数 介绍
-c 统计每一系统调用的所执行的时间,次数和出错的次数等.
-d 输出strace关于标准错误的调试信息.
-f 跟踪由fork调用所产生的子进程. 
-ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.
-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.
-h 输出简要的帮助信息.
-i 输出系统调用的入口指针.
-q 禁止输出关于脱离的消息.
-r 打印出相对时间关于,,每一个系统调用.
-t 在输出中的每一行前加上时间信息.
-tt 在输出中的每一行前加上时间信息,微秒级.
-ttt 微秒级输出,以秒了表示时间.
-T 显示每一调用所耗的时间.
-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.
-V 输出strace的版本信息.

下面我们看两个简单的使用示例:

首先是使用strace –tt date来跟踪date命令,使用-tt参数在每一行的行头上加上时间信息,到微秒级别。

另外一个示例就是使用strace –d cate命令统计所有函数调用的次数及总时间占用,这个对于命令跟踪的分析统计非常有用

一个SQLPLUS连接慢的问题

接下来我们来看一个案例,这个案例是一个SQLPLUS连接慢的问题,AIX 7.1的操作系统,11.2.0.3 两节点RAC数据库,检查硬件的安装环境没有问题,重新配置环境变量也不能解决问题。

对于这种问题,我们首先要进行一些排查,排除一些可能性:

1、  我们看一下使用sqlplus/ as sysdba慢不慢,经过反馈,sqlplus / as sysdba也慢,连接时间要5秒左右。

2、  远程连接慢不慢?

  1. 本地使用远程连接慢不慢  sqplus username/[email protected] 澄清: 测试也慢,慢约5秒钟左右。

  2. 其它主机使用远程慢不慢?澄清:同样也慢, 慢约5秒钟左右。

以上判断表明这个连接慢并非一定和Listener有关,同时也可以排除网络问题引起的监听连接慢,所以先需要解决sqlplus / as sysdba 慢的问题,很大可能在ORACLE数据库的连接处理机制上面。

我们使用TRUSS命令去跟踪跟踪sqlplus / as sysdba连接命令,发现不断出现sigpromask、_sigaction及thread_setmystate函数调用。

那这些函数代表什么?

之后对这些函数进行分析,其主要功能如下:

We see in that truss that main reason weare waiting is that the forked thread is looping on some signal handlingmodification :

 They impact the way memory isconfigured (read/write protected, guard pages...)

通过上述分析发现,连接的时候慢与内存页的分配有关,通过进一步检查内存参数发现,pre_page_sga设置为true。接下来通过测试可以重现这个问题,实际验证的确如此:设置为true,问题重现,设置为false,问题消失,并且发现这个参数为True的情况下,SGA内存越大连接变慢的越明显。

这种行为正常吗?

通过查询MOS文档Notes 289585.1,我们了解知这个行为是正常。

关注本公众号,回复:prelection,你可以找到本文的相关视频文档。

相关阅读:

DBA生存警示:系统存储级误删除案例及防范建议

故障诊断:DRM导致Oracle RAC节点Hang住

故障分析:数据库一致性关闭缓慢问题诊断

深入内核:监听器的工作原理与故障诊断分析

资源下载

关注公众号:数据和云(OraNews)回复关键字获取

‘2017DTC’,2017DTC大会PPT

‘DBALIFE’,“DBA的一天”海报

‘DBA04’,DBA手记4经典篇章电子书

‘RACV1’, RAC系列课程视频及ppt

‘122ARCH’,Oracle 12.2体系结构图

‘2017OOW’,Oracle OpenWorld资料

‘PRELECTION’,大讲堂讲师课程资料

思科交换机配置SSH+Telnet+修改名称,思科ssh

Hello大家好,我是Lionel,今天我给大家带来思科路由器配置SSH,Telnet和修改交换机名字的教程。
看我下面操作
首先我们启动交换机,看到       Switch>
上面的单词(启动过程很慢)
配置SSH
我们依次输入下面的命令,后面有中文注释命令是什么意思,大家可以根据自己需要进行配置。
Switch>en                                             进入特权模式
Switch#conf t                                         进入配置模式
Switch(config)#int vlan 1                             进入vlan 1
Switch(config-if)#ip add 192.168.6.X 255.255.255.0    设置IP和掩码
Switch(config-if)#no shut                             生效
Switch(config-if)#exit                                退出
Switch(config)#ip domain-name cisco.com               设置域
Switch(config)#crypto key generate rsa                配置加密方式为RSA
Switch(config)#aaa new-model                          启用AAA认证
Switch(config)#username admin password admin          设置SSH用户名和密码
Switch(config)#enable secret cisco                    设置特权模式密码
Switch(config)#ip ssh time 60                         设置SSH登录超时时间
Switch(config)#ip ssh authentication 4                设置登录失败尝试次数
Switch(config)#line vty 0 4                           进入Telnet接口配置模式
Switch(config-line)#transport input SSH               在Telnet接口模式下使用SSH认证
Switch(config)#ip ssh version 2                       若要用SSH2,配置SSH的版本号
Switch(config)#end                                    结束
Switch#wr                                             写入保存

到这步我们wr写入保存,完成了SSH的配置,我们在本地配置一个和交换机同一网段的内网IP。访问这个交换机的IP。
软件用PUTTY就可以。

配置Telnet
配置Telnet的目的是为了有些交换机版本低不支持SSH,所以我们要用Telnet连接交换机。
输入以下命令
设置域名:Router (config)# ip domain-name cisco.com
进入Telnet接口配置模式:Router (config)# line vty 0 4 
Router (config-line)# transport input telnet
Router (config-line)# password admin
Router (config-line)# login
Router (config-line)# exit
Router# wr
这样重启我们就可以用Telnet连接了。

设置交换机名称

Switch(config)#hostname 名称
只需要一条命令就可以修改名称,我们也可以通过别的方式修改,具体看交换机的版本。

以上就是本周带来的教程,想了解更多教程可以关注我们的官网和

Hello大家好,我是Lionel,今天我给大家带来思科路由器配置SSH,Telnet和修改交换机名字的教程。...

本文由金沙澳门官网网址发布于服务器运维,转载请注明出处:故障诊断,Java运行环境之

关键词:

上一篇:没有了

下一篇:没有了