Tag Archives:

[Solved] JMeter pressure test error: Java net. BindException: Address already in use: connect

Recently, I was writing a search interface service. After writing the interface, I conducted a stress test. However, when testing with a high thread for a long time, the following errors will be reported:

Troubleshooting:

First, check the server log and find that there are no errors.

Then check the nginx data. It is found that the number of requests is inconsistent with the number of requests sent by the test. The server receives less and thinks of losing requests.

Later, after searching the information, it was found that it was the problem of the windows machine,

Reason: Windows provides 1024-5000 ports for TCP/IP links, and it takes four minutes to recycle them, which causes us to fill up the ports when running a large number of requests in a short time, resulting in an error report.

Solution (operate on the server where JMeter is located):

1. Enter regedit command in CMD to open the registry;

2. In HKEY_LOCAL_Machine\system\currentcontrolset\services\TCPIP\parameters right-click parameters;

3. Add a new DWORD named maxuserport;

4. Double click maxuserport, enter 65534 numerical data, and select decimal base;

5. After completing the above operations, be sure to restart the machine and solve the problem.

No error will be reported for the test results after solution:

Add: I can test normally after modifying the above problems, but the same problem occurs after increasing the number of threads two days. The following configuration will test normally.

After the above three steps, add tcptimedwaitdelay, the value is 30-300, and select decimal.

You still need to restart your computer

tensorboard [Fatal error in launcher: Unable to create process using]

use tensorboard --logdir

An error is reported

Fatal error in launcher: Unable to create process using

Change to

python -m tensorboard.main --logdir

Measured operable

ps.

This problem occurs in the anaconda environment of several different versions of Python. It is speculated that the Python interpreter of base is used by default. At present, the problem has not been solved perfectly

SDK manager cannot open the solution (Android)

Solution 1:
prompt [SDK manager] failed to convert path to a short DOS path: C: \ windows \ system32 \ java.exe
open tools \ lib \ find_ Java.bat file, find
for/F%% a in (‘%~dps0 \ find_java. Exe – s’) do set Java_ exe=%%a
for /f %%a in (‘%~dps0\find_java.exe -s -w’) do set javaw_ Exe =%% a
just remove the – s from it
for/F%% a in (‘%~dps0 \ find_java. Exe’) do set Java_ exe=%%a
for /f %%a in (‘%~dps0\find_java.exe -w’) do set javaw_ exe=%%a

Solution 2:
the SDK manager.exe cannot be opened because of the lack of environment variables. Let’s start setting the environment variables of Android.
right click, my computer — & gt; Properties — & gt; Advanced — & gt; Environment variable.
system variable, new, variable name: Android_ SDK_ Home, the variable value is the path you unzipped to Android SDK windows.
next, we find the path variable in the system variable, click Edit, and enter it in the variable value box.;% ANDROID_ SDK_ HOME%\platform-tools;% ANDROID_ SDK_ HOME%\tools;
two% middle representatives refer to Android_ SDK_ The path to home, and then add tools and platform tools

Solution 3:
open tools \ lib \ find_ Java.bat file:
REM check we have a valid java.exe in the path.
set Java_ exe=call lib\find_ java.bat
if not defined java_ Exe goto: EOF
REM here we set it directly and change it to the absolute path of java.exe on your computer
set Java_ Exe = “E: \ Java \ jdk1.6.0_45 \ bin \ Java. Exe”
REM comment out the following code, which is used to find the path of your java.exe,
REM call lib \ find_ Java. Bat
If “error: SWT folder ” does not exist… Error prompt appears
for/F%% a in (‘% java_exe% – jar lib \ archquery. Jar’) do set swt_path = lib \%% a
REM for/F%% a in (‘% java_exe% – jar lib \ archquery. Jar’) do set swt_path = lib \%% a
set swt_path = lib \ x86 change to your own swt.jar path
call% Java_ exe% %REMOTE_ DEBUG%” “-Dcom.android.sdkmanager.toolsdir=%tools_ dir%” “-Dcom.android.sdkmanager.workdir=%work_ dir%” -classpath “%jar_ path%;% swt_ path%\swt.jar” com.android.sdkmanager.Main %*

Solution 4:
SDK manager.exe confirm the path of java.exe by calling Android SDK windows \ tools \ lib \ find_java.bat.

Enable cmd.exe, switch the command line to Android SDK windows \ tools \ lib, execute find_java.bat, and see the output: C: \ windows \ system32 \ java.exe

Although java.exe exists in this path, it is not the installation path of JRE. It is estimated that it is because some software requiring Java copied java.exe, javaw.exe and javaws.exe to C: \ windows \ system32 during installation, resulting in SDK manager.exe calling java.exe at the wrong location.

Delete java.exe, javaw.exe and javaws.exe under C: \ windows \ system32 \.

Solution 5: the installation path of Android SDK cannot have Chinese, and the installation folder cannot have spaces

Solution 6:

1、 First, ensure that the system variables of JDK and JRE are set correctly. For details, refer to the link: http://www.cnblogs.com/smyhvae/p/3788534.html

2、 Replace tools folder

Go to the website: http://tools.android-studio.org/index.php/sdk Download tools resources from

After downloading, unzip and install it under the tools file, and replace the file

 

 

Method to judge whether the DLL file is 32-bit or 64 bit (development error: unable to load library’d: \ eq2008_dll ‘: Õ Ҳ »µ ½ָ ¶)

Error: unable to load library’d: \ eq2008_ Dll’:Õ Ҳ »µ ½ָ ¶ (unable to load DLL file)

Reason: the loaded dynamic library DLL file is different from the JDK version. My JDK is 64 bit, while the DLL file is 32 bit. This error appears

After downloading the corresponding 64 bit DLL file on the Internet, no error will be reported

 

How to judge whether DLL file is 32-bit or 64 bit

Open the DLL file with DLL file, find the first ‘PE’, and check the letter after it. If it is D, it is 64 bits (as shown in the figure below)

If it is l, it is 32 bits (as shown in the figure below)

 

Reference link: https://blog.csdn.net/sumflower_ 96/article/details/79222461

Modify the script execution permission of PowerShell, and solve the problem of error reporting of commands executed by built-in terminals such as vscode (XX cannot recognize the name of cmdlets, functions, script files or runnable programs)

Several permissions for running PowerShell scripts

1. Restricted: by default, no script is allowed to run

2. Allsigned: only scripts signed by digital certificates can be run

3. Remotesigned: running a local script does not require a digital signature, but running a script downloaded from the network must have a digital signature

4. Unrestricted: all scripts are allowed to run, but you will be prompted whether to operate before running

5. Bypass: allow all scripts to run without any prompts and warnings.

View current permissions

Get-ExecutionPolicy

Modify permissions

set-ExecutionPolicy RemoteSigned

 

Unknownhostexception: XXX, an error is reported when using the Nacos remote call service (load balancing)

Remember, this kind of error occurs in the future because @ loadbalanced is not added to the getresttemplate () method in the configuration file of the consumer side to enable the load balancing function, so Nacos reports the error of “no host found”!

The front-end request error page is as follows:

 

Cause analysis:

1. First of all, Nacos has its own load balancing function. Why?Please see the figure below:

 

2. Because Nacos integrates ribbon, you can use resttemplate to remotely call the service for load balancing, and then successfully find the service under the Nacos registration service center. You just don’t know what algorithm to use to select the service provider, so an error is reported – no host exception is found.

 

  Solution:

Add “@ loadbalanced” above the method to get resttemplate in the configuration file to enable the load balancing function.

Done!

[Solved] (6) Axios error reporting, cannot read property ‘protocol’ of undefined

After NPM run build package is run in the project built by Vue cli, an error is reported

Cannot read property 'protocol' of undefined

Locate the error in the router file. From the cause of routing, the problem appears in the Axios application mode. Because Vue resource was used before, its usage mode is as follows:

/*Introducing the Resource Request plugin*/
import Resource from 'vue-resource'

/*Using the VueResource plugin*/
Vue.use(Resource)

However, when I change it to Axios, according to his way, although the local runtime is OK, the above errors will appear after packaging. The correct way should be

After introducing the Axios plug-in, assign it to Vue. Prototype. $HTTP, and use the VM. $http. Get () method directly

Solution to the problem of bash: gulp: command not found after installing gulp in Windows system

Why are there a series of technical challenges behind “OMG buy it”>>>

When using the gulp server command, bash: gulp: command not found appears
first of all, when I saw this command, I doubted that my gulp was not installed properly. I executed it again NPM install - G gulp , but the command ran smoothly, and the result still appeared: bash: gulp: command not found
then I found the following article on the Internet
I feel that the direction to solve the problem is right. The command of gulp is invalid. It should be the configuration problem. Then I go to the global directory (C: program files/nodejsnode)_ modules/npm/node_ Modules) to see if my gulp package is installed, and it is not! My bag succeeded, but it was in the wrong place

1. Use the command to check: NPM config get prefix , and the following figure is obtained

looking at the location, it seems that it is the address that I configured when I used the lower version of node.. But now NPM has been integrated into node. I can’t find the configuration address myself. Anyway, there is absolutely no environment variable. Now I just want to correct the address and go to the new path I follow C:// program files/nodejs/node_ modules\npm

2. Use the command to modify the configuration

npm config set prefix C:\Program Files\nodejs\node_ As we all know, the file name of the program files in the middle is very hollow, which causes the command to be interrupted in this way. So I went to the configuration file to modify it manually (this is a simple and direct way). The file location is here C:// users/administrator (see the figure below)

3. Check the configuration of NPM again

as can be seen from the above figure, the configuration address now points to NPM in node, and then install gulp to see
running commands: NPM install - G gulp and gulp - V

HDFS problem set (1), use the command to report an error: com.google.protobuf.servicee xception:java.lang.OutOfMemoryError :java heap space

Why are there a series of technical challenges behind “OMG buy it”>>>

Only personal practice, if there is something wrong, welcome to exchange


I. causes

Execute the following two basic HDFS commands to report an error

1 hdfs dfs -get /home/mr/data/* ./
2 hdfs dfs -ls /home/mr/data/*

These are two normal HDFS commands. How can I report an error?Then open the HDFS command to see the problem

Second, analysis

1) Use the following command to find the path of the HDFS command

1 which hdfs

Open the script with VIM HDFS, and find that Hadoop will be used when executing with HDFS DFS_ CLIENT_ Opts configuration item. The configuration item is usually set in the directory/etc/Hadoop/conf/hadoop-env.sh by searching

Open hadoop-env.sh script and find that the configuration item adopts the default configuration, namely 256M

2) After checking, there are 1W + small files in the/home/MR/data directory, but the size is only about 100m. It is speculated that the metadata is too large due to the size of the file data, resulting in insufficient memory when loading to the client ( guess may not be correct, you are welcome to give a correct explanation )

Third, solutions

Increase Hadoop_ CLIENT_ The configuration of opts can solve the problem in both forms

1 export HADOOP_CLIENT_OPTS="-Xmx1024m $HADOOP_CLIENT_OPTS"
2 hdfs dfs -get /home/mr/data/* ./
3 
4 HADOOP_CLIENT_OPTS="-Xmx1024m" hdfs dfs -get /home/mr/data/* ./

In addition, you can modify the configuration permanently by modifying the value in hadoop-env.sh

Java.net.noroutetohostexception: cannot assign requested address

Open source software supply chain lighting plan, waiting for you>>>

Question:

Error reason: because the client connection port allocated by Linux is exhausted, the socket connection cannot be established. Although the socket is closed normally, the port is not released immediately, but is in time_ Wait status. By default, wait for 60s and release
check the range of client connection ports supported by Linux, that is, 28232 portscat /proc/sys/net/ipv4/ip_ local_ port_ range
32768 - 61000

Solution:
1. Reduce the waiting time after port release, which is 60 s by default and 15 ~ 30 s by modificationecho 30 >/proc/sys/net/ipv4/tcp_ fin_ Timeout
2. Modify the TCP/IP protocol configuration by configuring /proc/sys/net/IPv4/TCP_ tw_ Reuse , default to 0, modify to 1, release time_ Wait port for new connectionecho 1 >/proc/sys/net/ipv4/tcp_ tw_ Reuse
3. Modify CTP/IP protocol configuration to recycle socket resources quickly. The default value is 0. Modify to 1echo 1 >/proc/sys/net/ipv4/tcp_ tw_ recycle

https://blog.csdn.net/weixin_ 43757847/article/details/88188091

https://my.oschina.net/shichangcheng/blog/1560864

https://stackoverflow.com/questions/32282112/error-setting-net-ipv4-tcp-tw-reuse-net-ipv4-tcp-tw-recycle-in-sysctl-conf

Wei Chengjun helped to find it

Postscript:

There’s a solution

Modify httpclient4. Idletimeout = & lt; in JMeter. Properties; timeinms> Set the time you think is reasonable. Generally, it can be set to 10-60s (it means the connection will be disconnected after 10s of free time). Note that the unit here is Ms

Reference: https://blog.csdn.net/Stesthu/article/details/87968927

Postscript:

I misunderstood this concept a little. After establishing a long connection, httpclient4.idletimeout means that the long link port will be disconnected as soon as it is idle. For example, the server will be disconnected directly when it is idle before it responds, resulting in an error. Here, the time should be set a little longer, keep a long connection, keep a connection all the time

Reference: https://www.cnblogs.com/kaibindirver/p/11957645.html To use a long connection, you need to configure the requester. See the connection section

Check whether the port is used up. Netstat – an check whether there is a port in timewait

https://i-beta.cnblogs.com/posts/edit-done; postId=11956755

Postscript:

After configuring a long connection, there will still be an error. Finally, you need to modify the release time of the port on the Mac https://www.cnblogs.com/kaibindirver/p/11958506.html

Moreover, when JMeter simulates sending a request, remember to add

C onnection:keep-alive Stay connected