Linux 下限制某进程的 CPU 使用率

最近游戏服务器出了点小问题,某个日志文件以每秒数 MB 的速度增大,最后达到 28GB 吃满了磁盘…

secagent-log

这个叫 Secagent 的进程都不知道是干嘛的,日志都是重复这两句错误。

貌似是很专业的东西,能搜到的资料太少,删掉 log 文件夹就好了…

然后更严重的问题是,Secagent 这个进程会发疯般的占用 CPU 。

无法从根源上解决问题,只好用最愚蠢的办法了,直接限制这个进程的 CPU 使用率。

在 CentOS 上安装 Cpulimit :

ps 我的 Linux 端连 wget 和 zip 都被精简掉了,只好解压好才传过去。

安装好 Cpulimit 后,使用 top 命令查看进程的 PID ,然后就可以用它来限制进程的 CPU 使用率了:

linux-cpulimit

限制了 CPU 使用率后日志的问题也随之解决了。

我的光纤

我家附近已经没有光纤接口了,还好认识个朋友在做电信外包的拉网线工作,让他从其他地方拉条线来。

因为是私活,自己还要去帮忙。

Optical fiber Optical fiber-box

刚拉的时候是下行 12M 的,下行 0.5M 。

过一段时间后,开 DNF 私服上行带宽爆炸,只好升级到 100M ,下行 4M ,三百块三年还挺便宜。

PK党的福音 DNF 私服外网架设

Dungeon_&_Fighter_logo

地下城与勇士,又称Dungeon & Fighter(D&F)(韩国服的英文称呼);Dungeon and Fighter(DNF)(中国服的英文称呼),日本称“Arad战记”,美国称Dungeon Fighter Online(DFO),是一款韩国Neople(后被NEXON收购)开发的2D横板ACT网络游戏。日本在2009年4月放映以该游戏为基础的电视动画。

在中国DNF于2008年6月19日公测,并在2008年12月12日突破在线人数100万大关。

DNF 台服于2012年8月31日由 garena 宣布再次代理,于2014年12月29日结束营运。

在 DNF 台服结束运营不久后,台服的服务端泄露了。现在,网上已经有了很多自建私服的教程,各种数据修改教程也很多,成为 DNF 的 GM 已经很简单了。

网上泄露的 DNF 服务端是运行着 CentOS 的 VMware 虚拟机文件。等级还是 70 的,但是内部已经包含了大部分 80 版本的装备和地图,如发电站和镇魂图。

要想在搭建外网的 DNF 服务器,需要以下条件:

  1. 带端口转发的路由器,要功能完备需要转发十几个端口
  2. 独立的公网 IP
  3. 机器配置要好,8G 内存以上,4G 分配给虚拟机,SSD 最佳

参照下面视频搭建,只简单写下过程,用到的服务端是某猴子单数据库精简端,压缩包只有 900MB ,网上其他端都大到 5GB ,已修复 PVP ,拍卖行关闭,反正拍卖行没啥用,组队公会也正常。

需要的工具:

  • 路由器 IP 和 HDCP 设置

进入路由器设置界面,把路由器的局域网 IP 设置为 192.168.200.1 ,一般在 “ LAN IP ” 或者 “ 局域网 IP ” 项,设置完后路由器会重启。

在通过 HDCP 服务把 192.168.200.160 这个 IP 分配给自己主机。

DNF-1

  • 虚拟机和桥接网卡设置

安装 VMware Workstation ,用 VM 打开 CentOS 服务端的 CentOS.vmx 文件,这样就打开虚拟机了。

虚拟网络编辑器 Wmet 网卡设置为 “桥接模式” ,桥接到当前电脑的网卡。

虚拟机设置里的网络适配器也要改成桥接模式(直接连接物理网络)。

DNF-3

还要在控制面板的网络中心里面禁用 Vmet8 网卡。

DNF-2

  • 服务端网卡修改

运行虚拟机,以 root 用户名和 123456 密码登录,打开 WinSCP ,连接到虚拟机 192.168.200.131 ,用户名密码同上。

DNF-4

打开 /etc/sysconfig/network-scripts/ 目录下的 ifcfg-eth0 文件,修改为以下内容并保存。

在到 /etc/sysconfig/ 目录下,打开 network 文件,修改为以下内容并保存。

然后到虚拟机里面,运行以下命令更新网卡信息。

  •  DNF 频道 IP 设置

把 \home\dxf\channel\cfg 目录下的 channel.cfg 配置文件中 “ this_ip ”  替换为自己的公网 IP,公网 IP 查询,像下面这样。

这个 900MB 的 CentOS 服务端默认开启了两个频道,它们的配置文件在 /home/dxf/game/cfg 目录,cain01.cfg 为 11 频道,cain03.cfg 为52 频道(决斗场)。

把两个文件里面的以下行的 IP 替换为自己的公网 IP ,一共八行。

因为公网 IP 会经常变动,所以以上几个文件的公网 IP 也要跟着改。

  • 路由器端口转发设置

进入路由 端口转发/端口映射 设置页面,添加以下转发。

  • 最后的配置和登录

Script.pvf 文件保存着 NPC、商城、商品价格、地图装备属性甚至装备爆率等配置信息,服务端它中在 /home/dxf/game 目录下,客户端的在客户端根目录,要保证服务端和客户端的 Script.pvf 文件是一致的,不然购买物品时会网络中断。

Script.pvf 文件可以从其它私服提取,或者在网上找别人发布的,如果不介意甚至可以用官方的,但一定要保持客户端和服务端 Script.pvf 文件的一致,请自行配置。

公钥 publickey.pem 则是和登录器验证的,用 WinSCP 把 DNF简易登录器 里面的 publickey.pem 覆盖到 /home/dxf/game 目录下,DNFLogin 则放到客户端根目录。

都搞好后就可以在虚拟机中启动服务端,输入以下命令回车启动:

出现以下画面说明 DNF 服务端已成功启动(俗称五国),就可以进游戏了。

DNF-6

在 DNF 懒人登录器里面输入公网 IP 就可以登录账号了,注册账号还要在数据库配置里面输入公网 IP 。

这个登录器需要转发数据库端口,也就是说别人知道了你的公网 IP 后可以黑进你的数据库,所以此登录器仅适合很少开服,只和朋友玩的服务器。

需要网关的开服用登录器配置现在就不写了。

DNF-7

组队或者 PVP 成功就是完美的外网架设了。

这版本 PVP 伤害有问题,一身 12 或者 13 红字体力的装备和零强化武器 PK 最佳。

DNF-PVP-HUB