2022年7月

这是 Mysql 在查询数据进行排序时,需要用到的缓存不够导致的,默认才几百kb。可以通过以下方式增加:

查询当前大小 sort_buffer_size
select @@global.sort_buffer_size;

临时进行调整 sort_buffer_size
SET GLOBAL sort_buffer_size = 1024 1024 8;

永久性调整 (编辑 my.ini 或 my.cnf 配置文件)
[mysqld]
sort_buffer_size=8M

注一:sort_buffer_size 设定 1024 1024 8 是什么意思?
即为将 sort_buffer_size 设为 8MB

注二:my.ini 或 my.cnf 的 sort_buffer_size 不生效?
修改配置后,需要重启 MySQL 服务。

近几天,我一台服务器上的带宽总是被跑满,导致网站速度奇慢无比,检查发现服务器有大量入站流量,这很不正常。

于是用抓包工具,发现服务器频繁访问另一个网站。再结合IIS日志,发现了很多的异常请求,请求的路径都是不存在的。我直接用电脑访问,也是不存在,但是,404页面很奇怪,并不是我自己设定的404页面,修改也没用。

我模拟手机访问,发现这些页面,都会加载一些非法内容,典型的网页404劫持,于是打开IIS,进去模块,跟另一台正常的服务器进行对比,看多出什么模块,果然很快找到一个异常的模块:

IISResetModult 指向:C:\inetpub\wwwroot\Cachfle.dll

删除模块,删除那个dll,重启IIS,搞定。

因为之前服务器很多人用过,然后就清理用户,修改密码。。。。

Session 是比较老的服务端单会话缓存实现,在新的 net core 中如果需要使用 session,需要增加服务注入,其实直接使用内置的 TempData 替代使用更方便。

TempData 是在会话有效的过程中长期有效的,只是在正常获取一次值 TempData[key] 后,就会被删除。但可以简单的通过:

value = TempData.Peek(key)

的方式来获取值,就不会被删除,等同于 Session 的效果了。