有关电脑技术方面的、及电脑基础和问题...
9月30
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

安装(pip安装)
pip安装supervisord

pip install supervisor
生成配置文件

echo_supervisord_conf > /etc/supervisord.conf
载入配置文件

supervisorctl  -c /etc/supervisord.conf
常用命令

supervisorctl stop program_name  # 停止某一个进程,program_name 为 [program:x] 里的 x
supervisorctl start program_name  # 启动某个进程
supervisorctl restart program_name  # 重启某个进程
supervisorctl stop groupworker:  # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
supervisorctl stop groupworker:name1  # 结束 groupworker:name1 这个进程 (start,restart 同理)
supervisorctl stop all  # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件
supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
安装(文件安装)
wget https://pypi.python.org/packages/31/7e/788fc6566211e77c395ea272058eb71299c65cc5e55b6214d479c6c2ec9a/supervisor-3.3.3.tar.gz#md5=0fe86dfec4e5c5d98324d24c4cf944bd

tar -zxvf supervisor-3.3.3.tar.gz
cd supervisor-3.3.3
python setup.py install


supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。

添加应用
supervisord.conf 文件底部追加

[program:web]
command=/usr/bin/python /Users/qp/web/app.py
autostart=true
autorestart=false
stderr_logfile=/tmp/test_stderr.log
stdout_logfile=/tmp/test_stdout.log
问题
遇到“Another program is already listening on a port that one of our HTTP servers is configured to use.”这个报错是因为 Supervisor已经启动了,这个时候如果想要解决这个问题,最简单的方法自然是 kill 掉进程,然后重启。
$ ps aux | grep supervisord
qp               95808   0.0  0.0  4286732    744 s003  S+   10:22上午   0:00.01 grep supervisord
qp               95600   0.0  0.1  4303732   7656   ??  Ss   10:12上午   0:00.20 /usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /usr/local/bin/supervisord -c /etc/supervisor.conf
$kill 95808 95600
http://127.0.0.1:9001 refused connection
supervisor.conf 修改如下


控制台输入supervisorctl,进入控制台时要输入的账号密码
[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
username=user              ; default is no username (open server)
password=123               ; default is no password (open server)

[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://127.0.0.1:9001



启动和停止服务示例如下

echo "${USER}" `date '+%Y%m%d-%H%M%S'`>> restart-rcms.log
supervisorctl stop rcms-auth
supervisorctl stop rcms-system
supervisorctl stop rcms-notice
supervisorctl stop rcms-business
supervisorctl stop rcms-workflow
supervisorctl stop rcms-xxljob
supervisorctl stop rcms-im
supervisorctl stop rcms-gateway

supervisorctl start rcms-auth
./wait-for-it.sh -t 120 localhost:19001
supervisorctl start rcms-system
supervisorctl start rcms-notice
supervisorctl start rcms-business
supervisorctl start rcms-workflow
supervisorctl start rcms-xxljob
supervisorctl start rcms-im
supervisorctl start rcms-gateway
9月23
一 、查看内存情况
#按 k 查看

free
点击在新窗口中浏览此图片
#按兆M查看

free -m


total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
#所以空闲内存=free+buffers+cached=total-used
内存的使用情况
cat /proc/meminfo

查看进程的内存占用
pidstat -r -p 24427 1 5

内存占用高的前20
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20

动态查看内存占用
slabtop

二 、问题定位
cached 占用过高问题
buffer,cached的作用:

cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 .
Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备(磁盘)的缓冲区,包括读、写磁盘
cache: 作为page cache的内存, 文件系统的cache,包括读、写文件
如果 cache 的值很大,说明cache住的文件数很多。

linux服务器会自动释放内存,保障系统运行,但只会释放够用的内存,而不会去释放更多的内存。

解决方法:
手动释放cached方法有三种(系统默认值是0,释放之后你需要再改回0值):
释放前最好sync一下,防止丢数据

sync 在启动机器或关机之前一定要运行sync命令。记住在任何情况下,慎重地执行sync命令决不会有任何坏处,sync命令强制把磁盘缓冲的所有数据写入磁盘


To free pagecache: #echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes: #echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes: #echo 3 > /proc/sys/vm/drop_caches

#常用方法是

sync

echo 1 > /proc/sys/vm/drop_caches

#清除后要还原系统默认配置:
echo 0 > /proc/sys/vm/drop_caches

#查看设置
sysctl -a | grep drop_caches
补充: echo 字符串 > 文件 就是把字符串内容从定向到文件中
点击在新窗口中浏览此图片

这时查看 free 可以看到 cached 降低了很多
10月17
linux下默认时间为美国纽约时间,与中国北京时间相差8个小时。
我发现使用cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime替换了系统的时间后,虽然date命令中的时间是对的,但是java的Date对象获得的时间依然是相差8个小时。这是为什么呢?经多方查证得出不能使用cp命令直接替换,只能使用ln命令链接时区配置
使用以下命令完美解决了两个时间不一致的问题。

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
9月5
Windows Server 2012 沒有快捷方式显示我的电脑到桌面,右键点击桌面也没有了个性化,怎么办??当然下面的方法也适用于其它的windows系统比如windows7、windows8、windows10等。

方法一:本地输入运行

如果是在Windows Server 2012本地控制台下,直接按Win(键盘上的微软徽标键)+R,输入:
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
回车后,勾选所需要的桌面图标的名称,确定即可。
点击在新窗口中浏览此图片
3月13
Linux系统一定要配置hosts文件

127.0.0.1  localhost
172.16.61.151  PSJX-DB-Server
172.16.61.150  PSJX-YY-Server
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

不配置的话默认访问机器名字会变成公网IP,程序里面获取到的也就是公网IP。
3月9
centos 修改系统打开最大文件数限制 too many open files的解决方法

linux 系统中,当运行的进程打开了过多是文件,超出了系统默认的最大打开文件数的限制的时候,就会出现Too many open files的错误,这时候,不用紧张,只要把系统的配置修改一下就ok了。操作如下:
1.打开配置文件:

vim /etc/security/limits.conf  

2.在文件最后加上两行:

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
  *              -       nproc           102400
  *              -       nofile          102400

最后的“102400”是修改最大打开文件数的限制数值。这个自己看着需要填写吧。不过设置为“102400”之后,就自己而言,很多情况都不会再出现Too many open files的错误了。这个可以纳为装完系统之后的系统优化之一吧。

然后注销再登录就可以了。
3月8
可能由于突然断电引起磁盘错误:
本来是想解决Mysql数据库中部分表丢失的问题,是由于突然断电引起的,一直没找到问题,本来想删除mysql data目录的表名重新创建数据库目录的,但删除不了提示“目录为空”这个问题,网上说是磁盘要chkdsk,但是执行的时提示这个“发现错误,CHKDSK 无法以只读模式继续”。

于是执行下面命令:
打开运行 -> CMD ->chkdsk c: /f /x   具体哪个盘按错误提示上显示的盘符更改

执行完成后,发现原来的表回来了。
2月26

对于装的vps服务器,首先我们需要对其进行一些基本设置才能放网站:
1.在D盘的目录下新建一个文件夹wwwroot,记住一定要在D盘,C盘是系统盘

2.打开IIS,新建站点,输入主机头,主机头就是新建网站要绑定的域名,注意不要带http://
80端口,网站的主目录就是在D盘的  wwwroot 勾选允许佚名访问网站(主机头的设置也可以在 网站-高级中)
主目录-配置-选项-启用父路径
主目录-纯脚本

3.serv-u -新建域
用户-新建用户-添加目录
目录访问里-勾选下
本地FTP服务-自动

4.php安装
解压PHP5
拷贝到C盘根目录下
拷贝PHP5目录下的libmysql.dll 和 php5ts.dll文件到c:\windows\system32下
打开C:\PHP5下的extensions文件夹全选,拷贝到c:\windows\system32下
拷贝PHP.INI到c:\windows下
拷贝PHP5目录下的libmysql.dll到c:\windows下
打开c:\windows下的PHP.INI文件,查找session 找到session.save_path="c:\sessions"
在C盘建立sessions文件夹
10月16
1.首先我们要找到是哪个进程占用CPU过高,如果是异常进程,就要结束掉,同时进行杀毒查杀。

2.如果是网站进程W3WP占用过高,就是网站方面的问题了,这时候如果只有一个网站的话,就很容易查到是这个网站的问题,然后重点对网站代码进行检查。

3.如果服务器上有多个网站,就要首先定位是哪个网站引起的CPU过高。如果有多个网站,可以对每个网站设置单独的应用程序池。然后在任务管理器中查看W3WP的CPU占用情况,找到占用CPU最高的W3WP进程,查看其PID。
8月26
用迅雷下载歌曲时,下载的时候文件名字很长,没有进行重命名,结果在复制这个文件时根本没反应。

删除也没用,用shift+delete也是没有一点反应,对这个文件就是无法进行任何操作。

急啊,整了好几天还没有搞定,网上有很多友说在安全模式下删除,尝试了一下还没有任何作用啊。

后来想用360强力粉碎机(文件压根拉不进去)。
分页: 1/6 第一页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]